博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《iPhone与iPad开发实战—iOS经典应用剖析》连载四
阅读量:7077 次
发布时间:2019-06-28

本文共 2564 字,大约阅读时间需要 8 分钟。

3.3.2 视图翻转动画
点击主视图右下角的
按钮,主视图会翻转到背后视图,在背后视图点击
Done
按钮可以返回到主视图。在
iOS
中这是一种视图跳转的方式,同时还伴有动画效果。在本应用中采用的是,通过一个根控制器(控制其它控制器的控制器)
RootViewController
,来控制主视图控制器(
MainViewController
)和背后视图控制器(
FlipsideViewController
)。
本应用是通过
MainWindow.xib
文件加载
RootViewController
控制器,然后在
RootViewController
控制器中创建一个
MainViewController
FlipsideViewController
双击打开
MainWindow.xib
窗口图
3-25
所示。
8_47717_087ba03d9a47171.jpg
3-25 MainWindow.xib窗口
在图
3-26
中双击
RootViewController
打开根控制器设计视图如图
3-26
所示。
8_47717_d715b09a6aadfc9.jpg
3-26 根控制器设计视图
这个根控制器创建的时候没有对应的视图对象,我们需要从对象库中拖拽一个
UIView
对象,拖拽过程如图
3-27
所示。拖拽完成后视图如图
3-28
所示。
8_47717_a446028e726dcdb.jpg
3-27拖拽View到根控制器
8_47717_5109d9da682e57e.jpg
3-28 拖拽完成后视图
打开对象库(Library)是通过菜单Tools->Library打开。
我们还需要在图
3-28
视图添加一个
按钮,该按钮是一个特殊的按钮,
iOS
提供了创建该形式按钮的模板,首先要在对象库中找到
Rounded Rect Button
拖拽到视图的左下角如图
3-29
所示。
8_47717_110158120cd2ce8.jpg
3-29
拖拽按钮
这个按钮如何能变成
按钮呢?这需要选中个按钮然后在通过菜单
Tools->Attributes Inspector
打开按钮检查器,如图
3-30
所示,在图
3-30
Type
下拉选项中选择
Info Light
,这样上面的椭圆形按钮就变成
按钮如图
3-31
所示。
  
8_47717_700cd0405eb2ef0.jpg
  3-30属性检查器    3-31 Info Light按钮
在图3-30Type下拉选项中有很多种按钮类型,这是开发iOS定义好的几个模板按钮。这些按钮在iOS都有这特殊的含义,如果不是真正需要一般情况不用轻易使用。就是显示应用信息,一般就是在实用型应用程序中使用。苹果对于这些按钮使用指南和规范。
现在视图翻转的外围工作已经基本完成,我们可以为程序添加代码了,首先添加
RootViewController.h
根控制器
h
文件如“代码清单
3-1 Password/Classes/RootViewController.h
”所示。
【代码清单3-1】 Password/Classes/RootViewController.h
#import <UIKit/UIKit.h>
@class MainViewController;
@class FlipsideViewController;
@interface RootViewController : UIViewController {
IBOutletUIButton *infoButton;
MainViewController*mainViewController;
FlipsideViewController*flipsideViewController;
UINavigationBar*flipsideNavigationBar;
}
@property (nonatomic, retain) UIButton *infoButton;
@property (nonatomic, retain) MainViewController*mainViewController;
@property (nonatomic, retain) UINavigationBar*flipsideNavigationBar;
@property (nonatomic, retain)FlipsideViewController *flipsideViewController;
- (IBAction)toggleView;
@end
h
文件中需要定义成员变量、方法和属性,其中
infoButton
是有关视图中
按钮对应。
除了在程序中为控件定义输出口外,还需在中把在视图控制器或视图中定义的输出口的控件成员变量与nib文件中的控件连接起来,如图3-32所示,infoButton控件的连接过程是按住Control键使用鼠标选中Root View Controller拖动连线到infoButton控件,然后松开Control键选择控件的输出口属性,这是在MainWindow.xibnib文件这样连接。如果是一般的nib如图3-33所示MainView.xib文件,其中的控制器的名字是File’s Owner,因此需要拖动File’s Owner到控件就可以了。一般情况下输出口的控件定义在视图控制器中的,但是在本应用中有些控件是定义在视图中,在这种情况下我们要拖动那个视图对象到控件就可以了,如图3-34所示。
8_47717_fac704a2afd2b4b.jpg
3-32 根控制器和控件输出口连接
8_47717_dcdd7a219d668f3.jpg
3-33 MainView控制器和控件输出口连接
8_47717_7162de88c44b5c8.jpg
3-34 MainView和控件输出口连接
mainViewController
属性是主视图控制器,
flipsideViewController
属性是背后视图控制器,
flipsideNavigationBar
是在背后视图的导航栏控件。
toggleView
方法是个
IBAction
(动作)方法,说明它是与控件事件连接在一起的,该方法是对应
按钮的点击事件的。
连接IBAction动作事件与输出口方法类似,要用Interface Builder把对于的nib文件打开,Interface Builder中把控件和控制器(或视图)连接起来,但是方向与输出口相反,输出口连线是按住Control键拖动鼠标从控制器(或视图)到控件,而IBAction动作事件是从控件拖到控制器(或视图)。

转载地址:http://fcdml.baihongyu.com/

你可能感兴趣的文章
Android Gson深入分析
查看>>
Android中自动跳转到系统设置界面
查看>>
树后台数据存储(採用webmethod)
查看>>
Android利用Fiddler进行网络数据抓包【怎么跟踪微信请求】
查看>>
memcached系列之二
查看>>
树的左旋与右旋
查看>>
Atitit. 如何判断软件工程师 能力模型 程序员能力模型 项目经理能力模型...
查看>>
每周算法讲堂,二分法
查看>>
2016第8周五
查看>>
CSS3文本溢出显示省略号
查看>>
zookeeper系列之通信模型(转)
查看>>
js动态判断密码强度&&实用的 jQuery 代码片段
查看>>
.Net开源SqlServer ORM框架SqlSugar整理
查看>>
JQuery在循环中绑定事件的问题详解
查看>>
SOCKS 5协议详解(转)
查看>>
用Inno Setup来解决.NetFramework安装问题 (转载)
查看>>
使用axis调用WebService服务端
查看>>
Linux下通过受限bash创建指定权限的账号
查看>>
php:使用XHProf查找PHP性能瓶颈
查看>>
Ubuntu单用户模式(安全模式)
查看>>