0

我有两个视图,它们在委托中有一个事件处理程序,任何交互发生时都会被调用。在每个事件处理程序中,我都喜欢它,以便它在另一个视图上执行交互。这里的问题是我在事件处理程序上遇到了一个来回调用的无限循环,即当一个人在另一个人身上进行交互时,它会触发它的事件处理程序,依此类推。有没有解决的办法?

这是委托方法。view1 和 view2 是两个视图。Position 是一个自定义类,用于更新每个视图的位置。

-(void) viewDelegate: (UIView*) dView didChangePosition: (Position*) newPosition {
    if( dView == view1 ){
        [view2 moveToPosition: newPosition];
    }else{
        [view1 moveToPosition: newPosition];
    }
 } 
4

1 回答 1

0

在开始时,viewDelegate:didChangePosition:您可以保存view1和/或view2局部变量的委托,然后nil输出实际的委托属性。然后,您可以自由调用moveToPosition:或任何其他会生成委托回调的代码。在方法结束时,只需将委托恢复为先前保存的值。

于 2013-07-11T03:52:54.597 回答