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 回答