iOS开发工具Xcode:Interface Builder

简介: 简介: Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源)。为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelines的GUI。

简介:

Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源)。为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelines的GUI。通常你只需要通过简单的拖拽(drag-n-drop)操作来构建GUI就可以了。IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序。在需要的时候,Nib文件可以被快速地载入内存。 

Interface Builder工具是在iPhone SDK中提供的。该工具通常用于Mac OS X开发和iPhone应用程序开发。Interface Builder提供了拖放面板以供开发人员将控件拖放到屏幕上。使用Interface Builder是一件非常纠结的事情,尤其对于那些具有Visual Studio背景的开发人员更是如此;它具有很多与Visual Studio内的设计器类似的内容,但是其工作方式和控件的设置方式却又完全不同。
使用Interface Builder完全是可选的,所有的控件都可以直接通过代码来使用。但是对于创建布局而言,它是一个有用的工具。 
Interface Builder直接集成到MonoDevelop中,双击任何.xib文件都可以自动基于选择的.xib文件打开Interface Builder。

在打开Interface Builder时,会出现几个不同的窗口,如图2-5所示。

图2-5

●     Library  这个窗口包含Objects、Classes和Media选项卡,其中包含着用户可以单击并拖到视图上的控件。
●     View  这个窗口是一个视图,可以单击不同的控件,并将其拖到该视图上。这使得我们可以按照所见即所得(WYSIWYG)的方式对用户界面进行布局。
●     Connections  在这个窗口中,可以设置控件之间的连接,使得我们能够通过程序对这些控件进行修改。如您所看到的一样,该窗口中还有另外3个选项卡。另外3个选项卡是Attributes、Size和Identity,通过这些选项卡,可以对控件细节进行修改。总体来讲,这个窗口就是所谓的查看器(Inspector)。
●     图2-5中的第4个窗口标题为Untitled,这是Interface Builder的主菜单,这个主菜单给出了视图中所有控件的分层视图。
后面几节将讨论可以使用的控件有哪些类型,包括通过Interface Builder使用的控件和仅通过代码使用的控件。
 
1  使用库中的控件
Library窗口包含大量可以在Interface Builder内使用的控件。这些控件也可以通过代码来调用;括号内的内容表示与该控件相对应的类。
●     控制器(UIViewController)  控制器是控制某种类型活动的控制器系列。
●     数据视图  数据视图通常用于向用户展示某种类型的信息。展示的控件有:
• 表视图(UITableView)  表视图以表列表的格式向用户展示数据。用户能够通过滚动栏浏览数据。通常,表视图中的一个单元格就是一整行(就是所谓的表视图单元格)。
• 表视图单元格(UITableViewCell)  对于表视图单元格,可以在表视图内对单元格定义和应用定制的外观、属性和行为。
• 图像视图(UIImageView)  图像视图向用户显示图像或动画。对于动画的情况,图像视图是作为一个UIImage数组而定义的。
•  Web视图(UIWebView)  Web视图在应用程序内向用户显示Web内容。
• 地图视图(MKMapView)  地图视图在应用程序内向用户显示地图内容。
• 文本视图(UITextView)  文本视图显示多行可编辑文本。
• 滚动视图(UIScrollView)  对于在单个窗口视图内无法完全显示的内容,滚动视图为显示这样的内容提供了一种方式。
• 拾取器视图(UIPickerView)  拾取器视图显示一个老*虎机样式的旋转轮。对于不熟悉MonoTouch的.NET开发人员来讲,这个控件在概念上类似于下拉列表框。
• 日期拾取器(UIDatePicker)  日期拾取器是一组旋转轮,通过它可以选择日期和时间。
●     输入对象与值对象(Inputs & Values)  Inputs & Values窗口提供了一组UI控件为用户提供输入方式。这些控件包括:
• 分段控件(UISegmentedControl)  分段控件可以看作是一个按钮,该按钮的不同部分表现为单独的控件。
• 文本标签(UILabel)  文本标签是显示文本的控件。
• 圆角矩形按钮(UIButton)  圆角矩形按钮控件实现了触摸事件。触摸事件类似于.NET中的“单击”事件。圆角矩形按钮等价于.NET中的按钮。
• 文本框(UITextField)  文本框控件允许用户通过虚拟键盘输入文本或数据。
• 开关(UISwitch)  开关控件允许用户切换用户界面上的值。从概念上讲,这个控件类似于复选框。
• 滑动栏(UISlider)  滑动栏控件允许用户输入一定范围值内的某个值。
• 进度视图(UIProgressView)  进度视图控件可以显示任务执行的进度。进度视图通常用于长时间执行的任务,向用户提供反馈。
• 活动指示器视图(UIActivityIndicatorView)  活动指示器视图控件提供任务当前运行的反馈。它并不显示任务的状态,只是显示任务正在运行。
• 页面控件(UIPageControl)  页面控件向用户提供应用程序中有其他页面的信息。
●     窗口、视图和栏  这些是Interface Builder和代码中可以使用的窗口、视图和栏。
• 窗口(UIWindow)  窗口包含多个视图,会首先在屏幕上显示。由于所有的视图都是在窗口中显示的,因此只能有一个窗口实例。
• 视图(UIView)  视图控件是一个矩形区域,可以放置控件和处理事件。
• 搜索栏(UISearchBar)  搜索栏控件是一个带有圆角边和搜索图标的文本框。其UI外观是为了向用户表明,这个字段可用于搜索。
• 搜索栏和搜索显示控制器(UISearchDisplayController)  搜索栏(Search Bar)和搜索显示控制器(Search Display Controller)是Search Bar控件、Bookmark按钮、Cancel按钮和显示搜索结果的表视图。
• 导航栏(UINavigationBar)  导航栏是支持按照分层进行内容导航的一个UI控件。
• 导航项(UINavigationItem)  导航项控件包含导航栏中导航项的相关信息。
• 工具栏(UIToolBar)  工具栏控件会在屏幕底部显示一个工具栏。工具栏控件支持工具栏内的工具栏项。
• 栏按钮项(UIBarButtonItem)  栏按钮项控件代表工具栏控件或导航栏内的一项。
• 灵活空间栏按钮(UIBarButtonItem)  灵活空间栏按钮控件代表工具栏内的空间量。
• 选项卡栏(UITabBar)  选项卡栏控件可以将选项卡栏显示在屏幕底部。选项卡栏控件可用于选项卡栏项的选择。

• 选项卡栏项(UITabBarItem)  选项卡栏项控件是选项卡栏控件内的一项。

 

2  设置插座变量 
为了能够使用拖到Interface Builder视图上的控件,需要为每个控件创建一个插座变量。在MonoTouch中,插座变量是一个类上的实例变量,该类分配给Interface Builder内定义的控件。该实例变量提供了一个接口,使得我们可以通过编程来访问该控件。为了说明这一点,您将使用一个基于iPhone窗口的项目,并在Interface Builder中打开MainWindows.xib文件。
在大多数情况下,您不会希望在窗口中直接使用控件,而是使用作为子视图加入到窗口中的视图来连接控件。这是因为在实际的应用程序中,您只是使用窗口来添加视图,而不是使用窗口来显示控件。

(1) 首先,从Library Objects选项卡中拖动一个圆角矩形按钮到窗口上。为了设置按钮的文本,可以在按钮中间双击,然后输入文本。结果看起来如图2-6所示。

图  2-6

 
(2) 即使按钮控件位于窗口上,如果没有为其创建插座变量,那么也不能使用这个控件。在库中,选择Classes选项卡,然后选择AppDelegate选项(这就是您需要用于访问新建按钮的类)。

(3) 在Library窗口的下方,现在有一个由4个选项卡组成的列表:Inheritance、Definitions、Outlets和Actions。现在,需要选择Outlets选项卡,单击+按钮加入一个新的插座变量。将该插座变量命名为myButton,按Enter键保存修改结果。可以选择输入一种类型,但是可以保留这个类型为“id”。得到的结果看起来应该如图2-7所示。

图  2-7

(4) 您可能已经注意到,还没有告诉这个插座变量哪个按钮将与之关联。为此,需要使用Inspector窗口(位于图2-8中靠右边的窗口)来创建从AppDelegate类插座变量到窗口中实际按钮的连接。首先从Interface Builder的主窗口(从左边开始数的第三个窗口)中选择AppDelegate。然后,选择Inspector窗口中的Connections选项卡(带有蓝色图标和白色箭头)。插座变量会在此显示;然后需要单击并将其从Inspector插座变量拖到窗口上的实际按钮(创建Inspector插座变量与实际按钮的连接)。图2-8显示了这个过程。

图  2-8

现在已经创建好这个连接,并且已经设置好这个插座变量,接下来可以在代码中使用它。
 
3  设置动作
动作是一条消息,当特定的事件发生时就会激活这条消息。这与.NET内事件的概念非常类似。MonoTouch所做的工作就是通过激活该事件的控件的强类型部分方法来公开这些动作。在下一节中可以了解到更多的相关知识。
 
设置动作的方式类似于设置插座变量,通过使用库类部分来创建一个新的动作,然后将这个动作连接到一个按钮的方法上。
 
(1) 与前面创建插座变量一样,创建一个新动作,并赋予它一个名称。
 
(2) 接着,与插座变量的情况一样,选择Actions选项卡,单击+按钮添加一个新动作。应该将这个动作取名为buttonPressed,从而与示例图像一致。Interface Builder会自动在该方法之后增加一个分号,用于表示这是Objective-C中的一个方法,但是,在使用Mono Touch时,保留这个分号并无妨碍。
 
(3) 您应该注意到,在AppDelegate Inspector Connections选项卡内,有一个名为Received Actions的新区域,其中包含着这个新动作。单击并将这个新动作拖到该按钮上。这一次,当释放鼠标左键后,应该注意到会出现该按钮可用的一系列动作。作为示例,请参见图2-9。
 

需要与按钮关联的动作可能是TouchUpInside方法。这意味着用户触摸了按钮,并刚刚移开光标。

图  2-9

这就是在Interface Builder中关联一个动作所需的所有工作。
如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
目录
相关文章
|
10天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
2月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
118 1
|
2月前
|
设计模式 安全 Swift
探索iOS开发:打造你的第一个天气应用
【9月更文挑战第36天】在这篇文章中,我们将一起踏上iOS开发的旅程,从零开始构建一个简单的天气应用。文章将通过通俗易懂的语言,引导你理解iOS开发的基本概念,掌握Swift语言的核心语法,并逐步实现一个具有实际功能的天气应用。我们将遵循“学中做,做中学”的原则,让理论知识和实践操作紧密结合,确保学习过程既高效又有趣。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你打开一扇通往iOS开发世界的大门。
|
2月前
|
搜索推荐 IDE API
打造个性化天气应用:iOS开发之旅
【9月更文挑战第35天】在这篇文章中,我们将一起踏上iOS开发的旅程,通过创建一个个性化的天气应用来探索Swift编程语言的魅力和iOS平台的强大功能。无论你是编程新手还是希望扩展你的技能集,这个项目都将为你提供实战经验,帮助你理解从构思到实现一个应用的全过程。让我们开始吧,构建你自己的天气应用,探索更多可能!
66 1
|
1天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
3天前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
18天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
38 9
|
14天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
17天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
16天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。