我的iphone应用程序出现了一个小问题(即使我之前已经完成了objective-c,我对于iphone programmation也很陌生)。作为子视图从xib加载的UIView:如何正确设置框架/大小?
我在我的主窗口中有一个名为centerView
的UIView。 我创建了一个与xib文件链接的UIViewController(我们称之为FooViewController
)的单例子类。我的目标是将关联视图作为子视图(centerView使用centerView的整个框架)加载。
问题:由FooViewController控制的视图不使用其超视图的框架。
我已尝试添加:
self.view.frame = self.view.superview.frame
在initWithNib的 “自定义初始化” 的一部分......方法FooViewController[[[FooViewController sharedController] view] setFrame:centerView.frame]
,当我添加视图CENTERVIEW([centerView addSubView:[[FooViewController sharedController] view]]
) (我曾试过这条线前后)
但我不能得到好的行为(即g ood大小)。有这样的问题有多个问题,但我无法找到我的答案在他们如此:
- 你知道我该如何解决这个问题吗?
- [可选]与xib链接的UIViewController的实例是如何工作的?必须有一个资源文件,其中指出了xib的名称?或者,它可能会寻找与班级同名的xib吗?
在此先感谢您的帮助。
非常感谢您的回答。我试图把有关框架设置的代码放在viewWillAppear中,但它似乎确实做了任何事情。实际上问题来自另一部分:即使在viewWillAppear中,superview也是null(但self.view.superview.frame不会创建任何段错误...)。我会研究这一点。 – ThR37 2011-06-12 21:47:48
在obj-c中,如果接收者为零,它将接受任何方法,并返回零(我认为)。这就是为什么即使self.view.superview为零也不会出现段错误的原因。 – 2011-06-12 22:02:08