如何使用Objective C在iOS上放大/缩小放大?

时间:2013-01-06 17:14:59

标签: iphone ios objective-c animation

我希望复制iOS应用程序中常见的放大/缩小动画(例如#1#2)。我特意寻找一个可以为一些公共库提供理想动画类型的预定值的源代码。与放大一样,它应该具有预先配置的变换值,这些变量值很容易被人眼识别。像pop-animation等等。

我认为这些必须在iOS中得到相当好的支持,无论是通过库还是直接的API支持......但我不确定从哪里开始。

3 个答案:

答案 0 :(得分:16)

使用以下代码放大和缩小动画。

放大:

- (void)popUpZoomIn{
popUpView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
[UIView animateWithDuration:0.5
                 animations:^{
                     popUpView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
                 } completion:^(BOOL finished) {

                 }];
}

缩小:

- (void)popZoomOut{
[UIView animateWithDuration:0.5
                 animations:^{
                     popUpView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
                 } completion:^(BOOL finished) {
                     popUpView.hidden = TRUE;
                 }];
}

答案 1 :(得分:11)

这样的动画可以在不需要第三方库的情况下完成。

示例:

 self.frame = CGRectMake(0.0f, 0.0f, 200.0f, 150.0f);
[UIView beginAnimations:@"Zoom" context:NULL];
[UIView setAnimationDuration:0.5];
self.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 768.0f);
[UIView commitAnimations];

使用比例的示例

 UIButton *results = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 100, 100)];
[results addTarget:self action:@selector(validateUserInputs) forControlEvents:UIControlEventTouchDragInside];
[self.view addSubview:results];

results.alpha = 0.0f;
results.backgroundColor = [UIColor blueColor];
results.transform = CGAffineTransformMakeScale(0.1,0.1);
[UIView beginAnimations:@"fadeInNewView" context:NULL];
[UIView setAnimationDuration:1.0];
results.transform = CGAffineTransformMakeScale(1,1);
results.alpha = 1.0f;
[UIView commitAnimations];

来源:http://madebymany.com/blog/simple-animations-on-ios

答案 2 :(得分:1)

考虑到我提供的示例,我所寻找的是一个抽象层,它将为我提供最常用的动画类型。

这些类型将使开发人员不仅可以包括放大/缩小等常见动画,还可以包含最佳动画值(To,From,Timing等),以便开发人员不必担心这些。

我找到one such library here,我相信还有更多。