在UITableView页脚或标题中添加UIButton

时间:2011-10-10 10:41:26

标签: iphone uitableview

我在UITableView标题中添加了一个带按钮的视图。我已正确设置高度,并且当键盘未显示时按钮实际上是有效的。当按下一些文本字段时(单元格中的UITextField)将显示键盘,并且我已将表格视图框架设置为较小,因此可以单击该单元格,但问题是按钮 - 当按钮在tableview中与其中一些相交时(当按钮未完全显示时,按钮不起作用,当按钮完全显示时,按钮功能正常。

我已经通过将按钮放在滚动视图中而不是放在页脚或tableview标题中来尝试它,它完美地工作。这是某种UITableView头错误吗?可以修复吗?

1 个答案:

答案 0 :(得分:0)

在代码中添加以下内容:

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{

      if(textField.tag != [[[yourTable indexPathsForVisibleRows] objectAtIndex:0]row])
          [self animateTextField: textField up: NO];
    return YES;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField
{

    if(textField.tag != [[[yourTable indexPathsForVisibleRows] objectAtIndex:0]row])
    [self animateTextField: textField up: YES];
}

- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
    const int movementDistance = 300; // tweak as needed
    const float movementDuration = 0.3f; // tweak as needed

    int movement = (up ? -movementDistance : movementDistance);

    [UIView beginAnimations: @"anim" context: nil];
    [UIView setAnimationBeginsFromCurrentState: YES];
    [UIView setAnimationDuration: movementDuration];
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);
    [UIView commitAnimations];
}