在动画中显示图像的一部分

时间:2013-06-03 06:08:31

标签: ios objective-c cocoa-touch

我想在动画中显示图像的一部分。我在UIImageView中放置UIScrollView,并将UIImageView的帧设置为(0, 0, imageWidth, imageHeight),并将UIScrollView的帧宽度设置为{{ 1}}。这是我的代码

0

但是当我运行它时,整个图像立即显示,没有动画。

1 个答案:

答案 0 :(得分:2)

您可以通过将UIImageView s contentMode设置为其中任何一个来显示图片的一部分(顶部,底部,左侧或右侧)

UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight

设置clipsToBounds = YES并相应更改其框架。由于frame是可动画的属性,因此此组合将允许您仅显示图像的一部分。

例如:如果您只想从底部显示20个点,请设置imageView.contentMode = UIViewContentModeBottom;并将其frame的高度设置为20。无论你设置什么帧,图像都会保持在UIImageView的下边缘。

参见示例代码:

UIImage *image = [UIImage imageNamed:@"myImage"];

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(0, 0, 0, 40);
imageView.contentMode = UIViewContentModeLeft;
imageView.clipsToBounds = YES;
[self.view addSubview:imageView];

CGRect finalFrame = imageView.frame;
finalFrame.size.width = 40;

[UIView animateWithDuration:1.0 animations:^{
    imageView.frame = finalFrame;
}];

此代码通过将图像大小从0开始扩展为动画图像。