我怎样才能动画放大/缩小使用目标C的iOS?(How can I animate zoom in /

2019-07-17 22:00发布

我期待复制的放大/缩小动画中的iOS应用中很常见(例如#1 , #2 )。 我特别寻找可以提供一些公共库与动画的理想某种预先指定的值的来源。 像放大,它应该有预配置的转换值是通过人的眼睛容易辨认。 像弹出动画等。

我认为这些都必须在iOS中被相当不错的支持,无论是图书馆或直接的API支持... ...但我不知道在哪里甚至开始。

Answer 1:

使用下面的代码为放大和缩小动画。

对于放大:

- (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;
                 }];
}


Answer 2:

这样的动画可以无需第三方库来完成。

例:

 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



Answer 3:

施加在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){}];


Answer 4:

我一直在寻找,考虑到我给的例子,是一个抽象层,这将使我最常用的动画类型。

这种类型的,将不仅使开发人员包括像变焦常见的动画/缩小,也将纳入最佳动画值(收件人,发件人,时序等),使开发人员不必担心这些。

我发现了一个这样的图书馆在这里 ,我相信还有很多。



文章来源: How can I animate zoom in / zoom out on iOS using Objective C?