我正在使用此方法尝试移动我的视图,但没有成功,这是我的MainViewController实现文件中的代码:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
CGRect rect = self.view.frame;
if (movedUp)
{
NSLog(@"should move Up");
rect.origin.y -= 50;
rect.size.height += 300;
}
self.view.frame = rect ;
[UIView commitAnimations];
它没有错误输出并且打印出“应该向上移动”所以我知道该方法已正确执行。
这是IB层次结构(我试图移动突出显示的视图):
任何帮助都会非常感激,我的想法已经用完了......
好的,在这里编辑我已经把问题分离出来了,我现在正在使用这个代码:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
self.containerView.frame = CGRectMake(0, 0, 250, 50);
[UIView commitAnimations];
如果我在“ - (void)viewDidLoad”中注入此代码,那么它工作正常。
但是如果我在同一个ViewController实现文件中的不同函数中使用相同的代码,它就不起作用了:
- (void)setViewMovedUp:(BOOL)movedUp {
NSLog(@"test movedUp");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
self.containerView.frame = CGRectMake(0, 0, 250, 50);
[UIView commitAnimations];
}
但是它仍然打印出“测试向上移动”,因此代码被执行,只是视图没有动画。
答案 0 :(得分:2)
浏览此链接using the tableview as horizontal scroll and animating the views and also animating the text like marquee 检查方法 - (void)handleSwipeGesture:(UISwipeGestureRecognizer *)sender
答案 1 :(得分:1)
尝试移动另一个视图 - 而不是主视图 可能在移动主视图时出现问题。
如果有效,则再向视图层次结构中添加一个视图,该视图将包含所有其他视图,并将其连接到IBOutlet。
如果它不起作用,请评论我,我们会试着弄明白......
答案 2 :(得分:0)
使用
[self.view setFrame:rect];
而不是
self.view.frame = rect ;
我认为动画不会用于self.view
。