检查是否已调用方法并且不再调用它

时间:2013-05-18 09:45:38

标签: ios objective-c cocoa-touch

touchesBegan中,当我触摸[self animateWindow];时,我会调用方法UILabel。它动画并从顶部带来窗口。当我再次触摸UILabel时,我不希望再次调用该方法[self animateWindow];,因为它会动画并再次显示已经显示的窗口。我该怎么做呢?有帮助吗?我试着搜遍一下,找不到确切的答案。

1 个答案:

答案 0 :(得分:3)

只需创建一个BOOL实例变量,将其用作标志:

@property (assign, monatomic) BOOL hasAnimated;

- (void) touchesBegan...
{
    if (!self.hasAnimated) {
        [self animateWindow];
        self.hasAnimated = YES;
    }
}

根据评论中的扩展描述,您需要添加一些逻辑来检查实际触摸的标签。更好的解决方案可以是在每个标签上使用手势识别器。然后您可以直接访问手势识别器的视图以检查它是哪个标签(可能使用tag),您可以根据您所处的状态添加和删除手势(只有一些标签应该响应接触,他们应该显示或隐藏)。