2011-05-31 39 views
0

我有一个UIImageView,我需要在屏幕上进行动画制作。我通过在1秒的动画块中将帧调整为0来做到这一点。如果我单独保留内容类型(这是缩放类型之一),它会缩小为0,但会随着它调整到新的帧大小而缩小图像。 我需要它只是削减底部而不是。我将内容类型更改为左上角,导致它无法执行任何操作。
我在这里错过了什么?将UIImageView从屏幕动画化

这是动画块代码。

// Change frame height. 
[UIView animateWithDuration:1.0f 
       animations:^ { 
        // Animate the frame off the screen 
        _closeImage.frame = CGRectMake(_closeImage.frame.origin.x, _closeImage.frame.origin.y, _closeImage.frame.size.width, 0); 
       } 
]; 
+0

什么你的意思是内容类型? – 2011-05-31 13:30:14

+0

他意味着规模模式。 @btate,尝试其他scaleModes。 – Moshe 2011-05-31 13:34:23

回答

0

您想更改scaleMode属性。如果您希望在缩放时正确缩小,则可以将其更改为纵横比。否则,你可以尝试一些其他的。

编辑:

根据您的意见,您需要设置clipsToBounds属性。

+0

@Moshe你的意思是'contentMode'吗? – 2011-05-31 13:43:01

+0

很可能。 – Moshe 2011-05-31 13:48:59

+0

我正在更改内容模式。如果我做的不是缩放比例,那么帧高就根本不会改变。我目前使用左上角。 _closeImage.contentMode = UIViewContentModeTopLeft; – smokingoyster 2011-05-31 13:52:07

0

你可以尝试使用:

// Change frame placement. 
[UIView animateWithDuration:1.0f 
       animations:^ { 
        // Animate the frame off the screen 
        _closeImage.frame = CGRectMake(_closeImage.frame.origin.x, _parentView.frame.size.height, _closeImage.frame.size.width, _closeImage.frame.size.height); 
       } 
]; 

_parentView是包含ImageView的看法......它会滑落parentView,并考虑从上海华盈取出后,如果你不使用它了...

+0

父视图顶部有一个工具栏。我正在寻找更多的效果,就好像图像正在滚动到工具栏中一样。所以我只需要框架动画到0并剪出任何不适合的东西。 – smokingoyster 2011-05-31 14:32:55

+0

因此,将工具栏设置为位于图像视图顶部并将图像原点更改为: CGRectMake(_closeImage.frame.origin.x,-_closeImage.frame.size.height,_closeImage.frame.size.width,_closeImage。 frame.size.height); 为什么缩小图像时,您可以将其移出屏幕... – kviksilver 2011-05-31 15:04:27