我正在寻找复制在 iOS 应用程序中很常见的放大/缩小动画(例如#1,#2)。我正在专门寻找一个可以为理想类型的动画提供一些具有预先指定值的通用库的源。就像放大一样,它应该带有预配置的变换值,这些值很容易被人眼识别。诸如流行动画之类的东西。
我认为这些必须在 iOS 中得到很好的支持,无论是通过库还是直接 API 支持......但我什至不知道从哪里开始。
使用以下代码放大和缩小动画。
对于放大:
- (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;
}];
}
这样的动画可以在不需要 3rd 方库的情况下完成。
例子:
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];
适用于 xCode 7 和 iOS 9
//for zoom in
[UIView animateWithDuration:0.5f animations:^{
self.sendButton.transform = CGAffineTransformMakeScale(1.5, 1.5);
} completion:^(BOOL finished){
}];
// for zoom out
[UIView animateWithDuration:0.5f animations:^{
self.sendButton.transform = CGAffineTransformMakeScale(1, 1);
}completion:^(BOOL finished){}];
考虑到我给出的示例,我一直在寻找的是一个抽象层,它将为我提供最常用的动画类型。
此类类型将使开发人员不仅可以包含放大/缩小等常见动画,还可以包含最佳动画值(To、From、Timing 等),因此开发人员不必担心这些。
我在这里找到了一个这样的库,我相信还有更多。