iphone - 将捏合手势从自定义 UIView 传递给父 UIScrollView

标签 iphone ios objective-c cocoa-touch ios7

我有一个自定义 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/

相关文章:

ios - 在 iOS 上使用带有 JSON 响应的 ASP Web 服务

ios - openGL ES 2.0 中 3D Sprite 的混合函数

ios - Objective C 对特定事件的回调

objective-c - PDFView setNeedsDisplay :YES doesn't work on MacOS Sierra 10. 12

iphone - 我需要释放xib资源吗?

iphone - 试图将 jpeg 保存到应用程序的文档目录

iphone - 使用 wifi 和 3G 网络将文件从一个 ios 设备传输到另一个?

iphone - 在后台线程上解除分配

ios - FaceBook iOS SDK 批处理请求和单一完成处理程序

iphone - 使用UINib时看不到