我有一个自定义 UIView
作为 UIScrollView
中的 subview 。
当选中
时,用户可以通过在屏幕上的任意位置捏合来调整 subview 的大小( subview 相当小)。
当取消选择
时,我希望将这个捏合手势传递给 UIScrollView,以便它可以像往常一样处理它。
这就是我正在尝试的。
- (IBAction)pinchInView:(UIPinchGestureRecognizer *)sender {
if (self.item.isSelected)
{
if ((sender.state == UIGestureRecognizerStateChanged) || (sender.state == UIGestureRecognizerStateEnded))
{
[self.item resizeWithScaleFactor:sender.scale];
}
} else
{
[self.scrollView setZoomScale:self.scrollView.zoomScale *= sender.scale];
}
sender.scale = 1;
}
虽然它确实有效,但这似乎是一种尴尬的方式。
有没有办法让 UIScrollView 处理它自己的缩放?
我也对平移手势使用了几乎相同的方法。
如果有任何方法可以减少这种尴尬,我将非常感谢您的帮助。
最佳答案
为您添加到 subview 的手势提供委托(delegate)。在委托(delegate)中实现以下方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecoznizer shouldReceiveTouch:(UITouch *)touch{
if(isSelected == true)
return YES;
else
return NO;
}
关于iphone - 将捏合手势从自定义 UIView 传递给父 UIScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18799097/