[英]Custom UIView(.xib) changes frame automatically after adding as subview in UITableViewCell
[英]UIView loaded from xib as subview : How to set the frame/size properly?
我的 iphone 应用程序有一个小问题(即使我之前已经完成了 objective-c,我对 iphone 编程还是很陌生)。
我的主 window 中有一个名为centerView
的 UIView。 我创建了一个与 xib 文件链接的 UIViewController 的 singleton 子类(我们称之为FooViewController
)。 我的目标是将关联视图加载为子视图(使用 centerView 的整个框架的 centerView)。
问题:FooViewController 控制的视图不使用其父视图的框架。
我试图添加:
self.view.frame = self.view.superview.frame
self.view.superview.frame initWithNib的“自定义初始化”部分... FooViewController的方法
[[[FooViewController sharedController] view] setFrame:centerView.frame]
当我将视图添加到 centerview 时( [centerView addSubView:[[FooViewController sharedController] view]]
)(我在这条线之前和之后都试过)
但我无法获得良好的行为(即良好的尺寸)。 有多个与此类问题相关的问题,但我无法在其中找到答案,因此:
在此先感谢您的帮助。
从 NIB 加载时,视图会在视图控制器的loadView
方法中加载,而不是在初始化程序中。 由于您不应该真正覆盖loadView
,尤其是。 如果您从 NIB 加载它,您应该尝试在视图控制器的viewDidLoad
方法中执行 #1 ( self.view.frame = self.view.superview.frame
)。 当然,您应该确保在执行此语句时将视图添加到超级视图中。 您还需要确保此时已正确设置超级视图的框架。
另一个可以尝试的地方是viewWillAppear:
方法。 到那时,您的视图的超级视图很可能已经正确设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.