0

我有一个里面有 textFields 的 tableView,当调用 textFieldDidBeginEditing 方法时,我有一个动画可以向上滑动 tableView。这是我的代码:

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    self.headerView.alpha = 0.2;
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.18];
    [UIView setAnimationDelegate:self];
    self.theTableView.frame = CGRectMake(0, 130, 320, 209);
    [UIView commitAnimations];
}

问题是每当点击一个单元格时动画就会发生,但我只希望它在第一次点击单元格时发生。所以我在想我应该做一个 if 语句来检查 tableView 是否在 (0, 130) 坐标处。有谁知道我会怎么做?

4

1 回答 1

1

对于精确的比较,CGPointEqualToPoint()就足够了。对于更广泛的比较(检查视图的矩形是否包含给定点),CGRectContainsPoint()是完美的。

当然,这一切都有些过头了。子类化您的视图并在其上保留一个标志以跟踪它们是否被向上滑动。它不仅使您的代码更加独立,而且使视图的逻辑远离您的控制器。

于 2013-03-10T04:30:27.860 回答