好的,这听起来可能很简单,但不知怎么的,我无法让这个函数工作。
- (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];
}所有的NSLogs都很好地打印结果,“测试向上移动”出现了,所以我知道上游没有什么问题。
这个函数是我的MainViewController实现文件的一部分(它管理我的窗口应用程序的根视图)。
我想我得打个电话:self.view.frame,,对吗?
没有出现错误或警告,但它只是没有移动,尽管打印出正确的日志。
编辑,这是IB中的层次结构:

再次编辑:我实际上想知道是否允许我将视图向上移动,如果视图位于层次结构的顶部,我们是否允许将视图向上移动?那么在背后会发现什么呢?
发布于 2010-09-13 11:45:51
尝试只删除这三条动画消息。
如果它动了(我想它不会,但是.)
beginAnimations
将@"moveup“作为第一个参数传递给
如果它不动
的吗?
编辑:更新
你不应该这么做,但试一试
[self.view setNeedsDisplay];如果不起作用,就在窗户上试试。改变框架应该是自动的。
https://stackoverflow.com/questions/3700001
复制相似问题