for*_*yez 0 iphone objective-c interface-builder
所以我在主视图中基本上有两个子视图.我通过转到IB中的库并将视图拖到我的主nib文件然后将控件放在它们上来创建每个子视图.
现在,我想通过"翻转"按钮在这些视图之间切换.我不明白的是我如何以编程方式执行此操作.
我的问题是:我是否"隐藏"其中一个子视图,然后在我翻转时以编程方式取消隐藏它?我是否通过Interface Builder为每个人命名,并按照这种方式进行操作?我真的不需要代码来实际执行翻转或任何操作,我只需要概念性地理解我如何以编程方式引用IB中构建的视图以及隐藏在我的场景中是否有意义...
有什么建议?谢谢
您可以使用
IBOutlet UIView *myView;
或
@property (nonatomic, retain) IBOutlet UIView *myView;
在头文件中连接到IB 中的内容.该IBOutlet关键字告诉IB,以使该插座可用于连接.
您可以通过从插座拖动到视图来在Connection检查器中建立实际连接: 建立连接http://cl.ly/eb3b5cd826b20fc9e307/content
(对你的观点这样做.)
注意:您的视图不必位于IB的窗口内.您可以在外部创建它们,并且在您需要它们之前不会显示它们.您可能希望将其中一个放入其中,以便在您的应用启动时显示.
然后,当你真的想要翻转到另一个视图时,假设你正在使用iOS 4.0,它很简单(有3.x和更低的方法,但这是最简单的):
[UIView transitionFromView:myView1
toView:myView2
duration:0.2
options:UIViewAnimationOptionTransitionFlipFromRight
completion:^{
// something to do when the flip completes
}];
Run Code Online (Sandbox Code Playgroud)
或者,如果要动态确定哪个视图已经可见:
UIView *oldView, *newView;
UIViewAnimationOptions transition;
if (myView1.superview) { // view 1 is already visible
oldView = myView1;
newView = myView2;
transition = UIViewAnimationOptionTransitionFlipFromRight;
} else { // view 2 is visible
oldView = myView2;
newView = myView1;
transition = UIViewAnimationOptionTransitionFlipFromLeft;
}
[UIView transitionFromView:oldView
toView:newView
duration:0.2
options:transition
completion:^{
// something to do when the flip completes
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8287 次 |
| 最近记录: |