我在MainViewController中有以下代码。那是最好的地方吗?我还有其他几种具有类似行为的方法。这种类型的代码是否属于单独的类,仅用于UI转换和操作?
-(void)slideView3P{
[self.view bringSubviewToFront:_view3P];
if (view3PIsMinimized){
view3PIsMinimized = NO;
[UIView beginAnimations:@"animationOff" context:NULL];
[UIView setAnimationDuration:0.5f];
[_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 7, _view3P.frame.size.width, 446)];
[UIView commitAnimations];
}
else {
view3PIsMinimized = YES;
[UIView beginAnimations:@"animationOff" context:NULL];
[UIView setAnimationDuration:0.5f];
[_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 57, _view3P.frame.size.width, 46)];
[UIView commitAnimations];
}
}
答案 0 :(得分:2)
对我来说,我将创建一个名为Helper的模型,并为动画创建类方法,如下所示:
+ (void)slideHoriWithPixel:(CGFloat) _pixel ForView:(UIView *) _view;
+ (void)slideVertWithPixel:(CGFloat) _pixel ForView:(UIView *) _view;
+ (void)popOutAnimationForView:(UIView *) _view;
会有一些简单而复杂的动画。
好处是:
答案 1 :(得分:1)
在我的应用程序中,我通常将转换放在视图控制器中,就像您当前所做的那样。但是,如果要重用转换,可以将它们放在单独的类中,并将其导入到您希望转换的各种视图控制器中。请注意:我不会使用beginAnimations:context:
和commitAnimations
,因为Apple不推荐它们。取自UIView Class Reference:
制作动画视图
在iOS 4及更高版本中不鼓励使用本节中的方法。改为使用基于块的动画方法。
+ beginAnimations:上下文:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationsEnabled:
+ setAnimationDelegate:
+ setAnimationWillStartSelector:
+ setAnimationDidStopSelector:
+ setAnimationDuration:
+ setAnimationDelay:
等...
希望这有帮助!