向UITableViewCell添加子视图的问题

3
我有一个UITableView,如果我点击其中一行,它会在底部添加一个子视图。问题是,当我点击表中的最后一行时,它会隐藏子视图,并让我滚动到底部才能看到它。这是一个小bug,但如何解决这个问题呢?
我能想到的一种方法是,如果选择了最后一行,则向下滚动到该行的底部。 不过,这似乎不是一个很好的解决方案。
这里有一个视频说明我的问题。
1个回答

2
您可以在didSelectRow方法中尝试类似以下的操作:
if (indexPath.row == [dataArray count]) {
  [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:indexPath.row
                                                       inSection:0]
                   atScrollPosition:UITableViewScrollPositionBottom 
                           animated:YES];   
}

我还使用了以下方法来使最后一行可见(尽管从您的视频中我不认为这对您的情况有用)

[guessesTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];

是的,您希望它自动滚动以使所选行完全可见。上面的代码看起来差不多正确。 - Hot Licks
这其实是我的解决方案,不知道是否有其他方法。 - adit
应该是[dataArray count]-1,行从0开始索引。 - adit
唯一能做的另一件事就是调整上述算法,使得任何被触摸到的行(或者至少在底部三分之一以下的行)都被提高到距离底部三分之一左右的位置。这可能会更加“直观”/ 不那么“突兀”(虽然您必须自己判断)。类似的技术也用于触摸某些东西时弹出键盘的情况。 - Hot Licks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接