1

我有一个自定义UIView作为UIScrollView.

selected,用户可以通过捏住屏幕上的任意位置来调整子视图的大小(子视图相当小)。

何时deselected,我希望将这个捏合手势传递给 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 处理自己的缩放

我也几乎使用与平移手势相同的方法。

如果有任何方法可以减少这种尴尬,我非常感谢您的帮助。

4

2 回答 2

1

为您添加到子视图的手势提供代表。在委托中实现以下方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecoznizer shouldReceiveTouch:(UITouch *)touch{
    if(isSelected == true)
        return YES;
    else
        return NO;
    }
于 2013-09-14T07:04:49.873 回答
0

实现下面的委托方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
于 2013-09-14T07:35:10.817 回答