在touchesBegan
中,当我触摸[self animateWindow];
时,我会调用方法UILabel
。它动画并从顶部带来窗口。当我再次触摸UILabel
时,我不希望再次调用该方法[self animateWindow];
,因为它会动画并再次显示已经显示的窗口。我该怎么做呢?有帮助吗?我试着搜遍一下,找不到确切的答案。
答案 0 :(得分:3)
只需创建一个BOOL实例变量,将其用作标志:
@property (assign, monatomic) BOOL hasAnimated;
- (void) touchesBegan...
{
if (!self.hasAnimated) {
[self animateWindow];
self.hasAnimated = YES;
}
}
根据评论中的扩展描述,您需要添加一些逻辑来检查实际触摸的标签。更好的解决方案可以是在每个标签上使用手势识别器。然后您可以直接访问手势识别器的视图以检查它是哪个标签(可能使用tag
),您可以根据您所处的状态添加和删除手势(只有一些标签应该响应接触,他们应该显示或隐藏)。