避免同时移动两个视图

时间:2012-04-18 12:32:27

标签: iphone ios cocoa-touch uiview

我有几个UIImageView作为UIView的子视图,充当画布。 ImageViews接收触摸事件,因此我可以移动它们。 如果我平移两个视图,每个视图在每个视图上我可以同时移动两个视图。我不希望这样。

我检查了superview上的maximumNumberOfTouches属性,但它影响了该视图,但它不会阻止每个其他子视图接收到触摸事件。

任何想法如何避免这种行为? 感谢

2 个答案:

答案 0 :(得分:1)

如果只设置一个图像视图已经移动的标志,所有视图上的平移手势在实际移动视图之前检查该标志怎么样?只要视图停止移动,就将标志设置为false。

答案 1 :(得分:0)

你可能会这样做,将UIImageView扩展为自定义UIView可能会调用YouImageView

触摸事件中的

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    for ( UIView *v in self.superview.subviews )
    {
        if ( v != self )
        {
            v.userInteractionEnabled = NO;
        }
    }

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    for ( UIView *v in self.superview.subviews )
    {
        v.userInteractionEnabled = YES;
    }

}

完成!