希望视图可以很好地扩展,我想将它用于iPhone和iPad版本的应用程序.
在iPhone上,视图将覆盖全屏.在iPad上,视图将仅覆盖屏幕的一部分.
我已经读过你不应该使用UIVIEwControllers来控制部分屏幕.所以,我试图使用IB将自定义UIVIEw嵌入到主UIVIEwController的视图中.
如何才能做到这一点?
解决方法 经过大量的反复试验后,我找到了一个基于 question中解释的方法的解决方案,由 Brian Webster回答.该解决方案最初建议用于Cocoa环境.我希望它在iOS环境中也有效.
>使用NIB文件创建主视图控制器.在NIB中,文件所有者应该对应于主视图控制器的类.
>使用NIB文件创建自定义视图控制器.在此NIB中,文件所有者应对应于自定义视图控制器的类.
>在主视图控制器类中创建自定义视图控制器属性.
>在主视图控制器类中创建UIVIEw属性.它将保存您的自定义视图控制器的视图.将其定义为IBOutlet,因此可以在NIB中进行链接.
>在主视图控制器的NIB中删除UIVIEw.将其链接到主视图控制器的视图IBOutlet.它将用作自定义视图的占位符.
>在主视图控制器的vIEwDIDLoad方法中,加载自定义视图控制器NIB,确定自定义视图的帧大小并在主视图控制器的视图中复制视图.
这是一些代码:
> MainVIEwController.h
@interface MainVIEwController : UIVIEwController { CustomVIEwController *customVIEwController; UIVIEw *customVIEw;}@property (nonatomic,retain) CustomVIEwController *customVIEwController;@property (nonatomic,retain) IBOutlet UIVIEw *customVIEw;@end
> MainVIEwController.m
- (voID)vIEwDIDLoad { CustomVIEwController *controller = [[CustomVIEwController alloc] initWithNibname:@"CustomVIEwController" bundle:nil]; self.customVIEwController = controller; [controller release]; customVIEwController.vIEw.frame = customVIEw.frame; customVIEwController.vIEw.autoresizingMask = customVIEw.autoresizingMask; [customVIEw removeFromSupervIEw]; [self.vIEw addSubvIEw:customVIEwController.vIEw]; self.customVIEw = customVIEwController.vIEw; [super vIEwDIDLoad];}总结
以上是内存溢出为你收集整理的objective-c – 在UIViewController的主视图中加载自定义UIView全部内容,希望文章能够帮你解决objective-c – 在UIViewController的主视图中加载自定义UIView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)