0

I want to show part of an image in animation.I put a UIImageView in the UIScrollView,and set the UIImageView's frame to (0, 0, imageWidth, imageHeight),and set UIScrollView's frame's width to 0. Here is my code

self.tiaoView.contentSize=CGSizeMake(316, 74);//tiaoView is an outlet of UIScrollView
[UIView animateWithDuration:5 animations:^{
    CGRect rect=self.tiaoView.frame;
    rect.size.width=316;
    self.tiaoView.frame=rect;}];

But when I run it, the whole image is showed immediately, no animation.

4

1 に答える 1

2

これらのいずれかにUIImageViewsを設定すると、画像の一部 (上、下、左、または右) のみを表示できます。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 から 40 に拡大して画像をアニメーション化します。

于 2013-06-03T08:22:49.013 に答える