好的,这可能听起来很简单,但不知怎的,我无法使这个功能起作用。
- (void)setViewMovedUp:(BOOL)movedUp {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
CGRect rect = self.view.frame;
NSLog(@"%f",self.view.frame.size.height);
if (movedUp)
{
NSLog(@"test Moved Up");
rect.origin.y += 60;
rect.size.height -= 300;
}
self.view.frame = rect ;
NSLog(@"%f after:",self.view.frame.size.height);
[UIView commitAnimations];
}
所有的NSLog都打印结果很好并且出现“Test Moved Up”,所以我知道上游没有错。
此函数是我的MainViewController(管理我的Window应用程序的根视图)的实现文件的一部分。
我想我必须打电话: self.view.frame ,对吗?
没有出现错误或警告,但尽管正确打印出日志,它仍然没有移动..
编辑,这是IB中的层次结构:
再次编辑:我实际上想知道我是否可以移动该视图,如果它们位于层次结构的顶部,我们是否可以移动视图?然后会在后面揭示什么?
答案 0 :(得分:0)
尝试仅删除三个动画消息。
如果它移动(我认为它不会,但......)
如果不移动
编辑:更新
您不应该这样做,但请尝试
[self.view setNeedsDisplay];
如果不起作用,请在窗口中尝试。更改框架应该自动执行此操作。