9

我有不同的例子,我们可以根据实际对我有用UITableViewCell的增长来更新高度。UITextView我面临的问题是,我在下面有更多UITextView的子视图UITableViewCell。这样,单元格的高度会更新,但子视图的位置保持固定,这会导致UITextView子视图重叠。顺便提一下,我没有使用自动布局。
我该如何解决 ?
这些是有助于理解我的问题的三个屏幕截图:

1. TextView 显示前:

在此处输入图像描述

2. TextView 显示后:

在此处输入图像描述

3. 输入文字后:

在此处输入图像描述

4

3 回答 3

3

我假设您正在为此单元格使用自动布局(但我们可以使用代码示例或 Xcode 屏幕截图来更具体地帮助您)。如果您使用自动布局,您需要确保:

  1. 您在单元格中的 UITextView 和它下面的其他 UIView 子视图之间有一个约束
  2. 其他 UIView 子视图最终被限制在单元格的底部。
于 2015-12-09T22:10:56.467 回答
3

因为UITableViewCells 被复用了,你会发现在向 中添加对象的时候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];
    }

希望这可以帮助。

于 2015-12-18T10:35:10.050 回答
2

你在使用自动布局吗?我之前用 UITableViewCells 做过几次,虽然它主要是用 UILabel 而不是 UITextView。

自动布局可能会解决您的问题。您相对于彼此布局所有子视图(在 UITableViewCell 内部)。如果一个视图(即 UITextView)改变了大小,那么其他视图将相对于该视图进行调整。这里有一些有用的链接。

这不是特定于 UITableViewCell 的,但有很多关于各种场景的好例子。斯坦福大学开发 iOS 7 应用程序:第 9 讲 - 动画和自动布局 https://www.youtube.com/watch?v=r1sc7NI6-wo

于 2015-12-09T21:46:29.780 回答