0

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

4

1 回答 1

3

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

@property (assign, monatomic) BOOL hasAnimated;

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

根据您在评论中的扩展描述,您将需要添加更多逻辑来检查实际触摸的是哪个标签。更好的解决方案可能是在每个标签上使用手势识别器。tag然后,您可以直接访问手势识别器的视图以检查它是哪个标签(可能使用或隐藏)。

于 2013-05-18T09:47:53.000 回答