1

UIView を左から右に縮小し、アニメーションの終了後にスーパー ビューから削除する次のコードがあります。

    UIView* coverView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 300, 50)];
    UIImageView* imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"swipe_rl.png"]];
    [imageView setContentMode:UIViewContentModeScaleToFill];
    [imageView setFrame:coverView.bounds];
    [coverView addSubview:imageView];
    [coverView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
    coverView.clipsToBounds = YES;
    [self.view addSubview:coverView];
    CGRect frame = coverView.frame ;
    [UIView animateWithDuration:5.0 animations:^{
    [coverView setFrame:CGRectMake(frame.origin.x + frame.size.width, frame.origin.y, 0, frame.size.height)];
    } completion:^(BOOL finished){
        [coverView removeFromSuperview];
    }];

ただし、写真でわかるように、写真の左側の部分が残り、写真の右側の部分が消えます。特定の目的のために、左の部分が消え、右の部分が残るようにしたい. どうすればいいですか?

なぜこれが欲しいのか知りたい人のために:

- Basically, I want a display-from-left-to-right animation (It means you have a picture and the left of the picture appears first and the the middle and the whole picture appears)
- I do this by adding a second view above the first picture and then shrink the second view from left to right. The first view will then be revealed from left to right.
- Look at http://i1289.photobucket.com/albums/b510/yenmach/right_to_left_zps80b9e9bb.jpg and http://i1289.photobucket.com/albums/b510/yenmach/left_to_right_zps9214dc4a.jpg

最初から縮む

アニメーションの途中で縮む

4

3 に答える 3

3

//これを試して.......

 CGRect frame = coverView.frame ;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:5.0];
[UIView setAnimationDelay:0];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
imageView.frame = CGRectMake(frame.origin.x - 2*frame.size.width,imageView.frame.origin.y, frame.size.width, frame.size.height);
coverView.frame = CGRectMake(frame.origin.x + frame.size.width, frame.origin.y, frame.size.width, frame.size.height);
[UIView commitAnimations];
于 2013-01-24T05:38:50.647 に答える
0

UIImageView contentModeプロパティを変更してみてください。

[imageView setContentMode: UIViewContentModeRight];

私は同じ種類の要件を持っていましたが、これは当時私にとってはうまくいきました。

于 2013-01-24T04:58:23.203 に答える
0

正確な解決策ではありませんが、回避策です。一貫した背景 (理想的には単色) でこれを使用する場合は、画像ビューの上に別のビューをアニメーション化し、アニメーションが完了したら両方を削除することができます。

于 2013-01-24T04:22:15.557 に答える