我在移动视图时遇到了一些麻烦:
- (void)viewDidLoad {
CGRect newFrame = self.popUp.view.frame;
newFrame.origin.y = self.view.bounds.size.height;
self.popUp.view.frame = newFrame;
[[self view] addSubview:[self.popUp view]];
[super viewDidLoad];
}
这应该将子视图popUp
置于当前屏幕下方,但它似乎没有移动它。我几乎肯定这是4.2之前的工作。关于可能发生的事情的任何想法?对不起,模糊不清。如果您有任何问题,请随时提出。
答案 0 :(得分:0)
您是否尝试将[super viewDidLoad]
移至方法的顶部?你调用超类的方法可以影响继承的vars的状态。
关于此的好帖子:`[super viewDidLoad]` convention
答案 1 :(得分:0)
看起来你正在移动,所以popUp.view
的顶部位于self.view
的底部。然后,当您将popUp.view
添加到self.view
时,您将其置于self.view
的“外部”。您可以newFrame.origin.y = self.view.bounds.size.height - 100;
验证这一点,看看它是否显示。
您的观看次数没有像之前那样显示的一个原因可能是您已更改clipsToBounds
。我想也可能是其他一些绘图优化正在进行,而不是绘制出边界且不可见的视图。
如果您希望弹出窗口显示在视图下方,我认为更好的方法是将弹出窗口放在视图的底部:
newFrame.origin.y = self.view.bounds.size.height - newFrame.size.height;
或将弹出视图放在self.view
的超级视图中。在这种情况下,您可能希望处理superview控制器中的显示。