UIImageView を使用して、.png 画像をアニメーション化して 3D をシミュレートしています。タッチ イベントを使用してアニメーションの流れを制御することはできますか? たとえば、ボックスをシミュレートしている場合、指で左または右に回転できますか? そうでない場合は、私を別の方向に向けることができますか?
1 に答える
1
まず、これを行うには 2 つの方法があります。コア アニメーションを使用してキューブを構築し、スワイプまたはタッチで回転させる難しい方法と、アニメーションの .png シーケンスをファイルに追加する (最も簡単な) 方法です。 UISwipeGestureRecogniser によって起動される imageView。
まず、ジェスチャー認識機能を作成します。通常は ViewDidLoad に入れるだけです
//Implement Swipe Views
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)];
swipeRight.numberOfTouchesRequired = 1;
swipeRight.direction = UISwipeGestureRecognizerDirectionLeft;
[_imageView addGestureRecognizer:swipeRight];
次に、 @selector(swipeRight) で宣言した swipeRight メソッドを、スワイプ時に再生するアニメーションで実装します...
-(void)swipeRight
{
NSMutableArray *animationArray = [[NSMutableArray alloc] init];
int animationSizeTwo = 30;
for (int i=0; i< animationSize; i++) {
NSString *zeros = @"000";
if ( i >= 1000 ) {
zeros = @"";
}
else if ( i >= 100 ) {
zeros = @"0";
}
else if ( i >= 10 ) {
zeros = @"00";
}
NSString *animationNameTwo = [NSString stringWithFormat:@"(imageName)"];
NSString *imageName = [NSString stringWithFormat:@"%@%@%d.png", animationNameTwo, zeros, i];
[animationArrayTwo addObject:[UIImage imageNamed:imageName]];
}
_imageView.animationImages = animationArray;
_imageView.animationDuration = 1;
_imageView.animationRepeatCount = 1;
_imageView.image = [_imageView.animationImages lastObject];
[_imageView startAnimating];
}
これで、右にスワイプするたびにアニメーションが起動します。UIGestureRecogniser コードをコピーして貼り付け、すべてのメソッドを変更して、両方の方法で起動できるようにすることができます。swipeLeft を実装するときは、アニメーション シーケンス数を次のように変更するだけです。
int animationSizeTwo = 0;
for (int i=30; i> animationSize; i--) {
これにより、アニメーションが逆に回転します。
これが役に立ったことを願っています。T
于 2013-02-05T21:15:25.010 に答える