我有不同的examples我们可以根据实际上对我有用的UITableViewCell
增长来更新UITextView
高度。我面临的问题是,我在UITextView
内的UITableViewCell
下方有更多子视图。这样,单元格的高度会更新,但子视图的位置会保持固定,从而导致UITextView
和子视图重叠。
简而言之,我没有使用自动布局
我该如何解决这个问题?
这三个屏幕截图有助于理解我的问题:
1。在显示TextView之前:
2。显示TextView后:
第3。输入文字后:
答案 0 :(得分:3)
我假设您正在为此单元格使用自动布局(但我们可以使用代码示例或Xcode截图来更具体地帮助您)。如果您使用的是自动布局,则需要确保:
答案 1 :(得分:3)
由于UITableViewCell
被重用,您会发现在向contentView
添加对象时,这些对象也将被重用而不被删除,从而导致重叠的子视图。解决这个问题的方法是使用以下代码启动cellForRowAtIndexPath
:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
for (UIView * view in [cell.contentView subviews]) {
// clears the cell before reusing
[view removeFromSuperview];
}
希望这有帮助。
答案 2 :(得分:2)
您使用的是自动布局吗?我之前用UITableViewCells做了好几次,虽然它主要是用UILabel而不是UITextView。
您的问题可能会通过自动布局解决。您将所有子视图(在UITableViewCell内)相对于彼此进行布局。如果一个视图(即UITextView)改变大小,则其他视图将相对于该视图进行调整。以下是一些有用的链接。
这不是特定于UITableViewCell,而是有很多各种场景的好例子。 斯坦福大学开发iOS 7应用程序:第9讲 - 动画和Autolayout https://www.youtube.com/watch?v=r1sc7NI6-wo