私はUIImageView(オブジェクト上の画像)にUIImageを1つ持っています。右にアニメートする必要がありますが、このアニメーションはこのサークルマスクでマスクする必要があります。マスク付きアニメーションUIImageView(マスク付きコアアニメーション)
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, 44, 44, 21, 0, 2 * M_PI, NO);
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
[shapeLayer setPath:path];
[shapeLayer setFillColor:[[UIColor blackColor] CGColor]];
[shapeLayer setBounds:CGRectMake(0, 0, 44, 44)];
[shapeLayer setPosition:CGPointMake(0, 0)];
UIImageView *loadingShape = [[UIImageView alloc] initWithFrame:CGRectMake(6.5, 7.5, 89, 40)];
[loadingShape setImage:[UIImage imageNamed:@"object_image.png"]];
[self addSubview:loadingShape];
// Set the mask for the image view's layer
[[loadingShape layer] setMask:shapeLayer];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:0.3];
[UIView setAnimationRepeatCount:10];
[loadingShape setFrame:CGRectMake(0, 7.5, 89, 40)];
[UIView commitAnimations];
しかし、これは私の全体のUIImageViewをマスクアニメーション化:
私の現在のコードがあります。私は静的であるためにマスクが必要です。
これを行うには最適なソリューションは何ですか?
あなたは 'position'をアニメーション化していますが、' CGRect'である 'fromValue'と' toValue'を与えています。彼らは 'CGPoints 'ではないでしょうか? –
あなたは正しいです、私はコードを変更しました。しかし、両方のソリューションが動作します:) – dormitkon