2

ビューをUISwipeGestureRecognizerに登録して、左または右のスワイプを認識します。そして、応答操作は次のとおりです。

[UIView beginAnimations:@"slide" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

CGRect frame = self.sliderImageView.frame;
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft )
{
    frame.size.width = 0;
    self.sliderImageView.frame = frame;
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
{
    frame.size.width = 199;
    self.sliderImageView.frame = frame;
}

[UIView commitAnimations];

表示されているビューを取得できる場合はself.sliderImageView.frame.widthどうなりますか?アニメーション中に使用しようとしているのNSLog(@"%f", self.sliderImageView.frame.size.width)は0または199であるためです。それで、?を取得する方法はありますframe.widthか?

4

2 に答える 2

3

アニメーション中に、ビューのレイヤーのプレゼンテーション レイヤーを使用して、プロパティの現在の値にアクセスできます。プロジェクトに QuartzCore フレームワークを含め、QuartzCore ヘッダーをインポートして、これを使用します。

self.sliderImageView.layer.presentationLayer.frame.size.width

ここを参照してください。

于 2013-03-16T08:43:51.820 に答える
0

あなたはこのようになるでしょう:

NSLog(@"%f",self.sliderImageView.frame.size.width);
于 2013-03-16T07:31:56.593 に答える