我有一个带有UITextField的UITableViewCell。当我单击UITextField时,我想确保整个单元格在tableView中可见。我在textfieldDidBeginEditing中这样做了,如下所示:
- (void) textFieldDidBeginEditing:(id)textField {
TTTableViewCell *cell = (TTTableViewCell *)[self.tableView cellForRowAtIndexPath:objc_getAssociatedObject(textField, kIndexPathId)];
[self.tableView setContentOffset:CGPointMake(cell.frame.origin.x, cell.frame.origin.y - self.tableView.sectionHeaderHeight) animated:YES];
}
当用户进入列表时,这非常有效。期望用户点击顶部部分可见的单元格时,它不会显示整个单元格只是移动了一点。
有人知道这个问题的解决方案吗?
答案 0 :(得分:1)
有UITableView方法可以解决这个问题。您可以使用scrollToRowAtIndexPath:atScrollPosition:animated:要求表格视图通过传递UITableViewScrollPositionTop
将单元格置于顶部。
(您可能首先要检查它是否已经可见,以确保它不会不必要地滚动。)