将子视图添加到 UITableViewCell 问题

Posted

技术标签:

【中文标题】将子视图添加到 UITableViewCell 问题【英文标题】:adding subviews to UITableViewCell issue 【发布时间】:2011-05-28 01:26:38 【问题描述】:

我有一个 UITableView ,如果我点击其中一行,它会在底部添加一个子视图。问题是当我点击表格中的最后一行时,它会隐藏子视图并让我滚动到底部才能看到它。这是一个小错误,但解决此问题的最佳方法是什么。

我能想到的一种方法是如果选择了最后一行,则向下滚动到该行的底部。 不过,这似乎不是一个很好的解决方案。

这是一个 video 说明我的问题

【问题讨论】:

【参考方案1】:

您可能想在 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];

【讨论】:

是的,您希望它自动滚动以将所选行完全显示在视图中。上面的代码看起来差不多。 这实际上是我的解决方案,不知道是否有其他方法 它应该是[dataArray count]-1,行是0索引 关于你唯一能做的另一件事就是调整上面的算法,使任何被触摸的行(或至少一个低于底部 1/3 左右的行)从底部提升到大约 1/3底点。这可能更“直观”/更少“颠簸”(尽管您必须成为法官)。当触摸某物产生键盘弹出时使用类似的技术。

以上是关于将子视图添加到 UITableViewCell 问题的主要内容,如果未能解决你的问题,请参考以下文章

选择时将子视图添加到 UITableViewCell

如何将子视图添加到 UITableViewCell

将子视图添加到 UITableViewCell 问题

将子视图添加到 UITableViewCell contentView 的正确方法

如何在编辑模式下将子视图添加到 UITableViewCell 并调整其大小?

是否不可能将子视图添加到我的 UITableViewCell 的 contentView 并使其宽度与 contentView 相等?