在iOS8中自动resize的tableViewCells仍然会截断UILabel文本

我一直在尝试使用新的方法来调整iOS8中的UITableView单元格的大小,它的工作原理。 我首先要确保标签贴在单元格的顶部,底部,尾部和前端的容器视图上,这是我在线教程中要求做的,尽pipe我觉得这是问题所在。 在viewDidLoad中,我接着写了如下几行:

self.tableView.estimatedRowHeight = 56 self.tableView.rowHeight = UITableViewAutomaticDimension 

看完WWDC之后,看起来这几乎是我所需要的单元格,然后我进入界面生成器,并将标签的“lines”属性设置为0,再次按照video中的指示。 它调整了所有的单元格,正如我所期望的那样,尽pipe它总是使得它们一行太小,以至于全文不适合。下面是它的样子的截图。 请问是否需要更多的信息或照片,如果它使您更容易给我一些build议。 我意识到这可能是我的一个愚蠢的错误,但有几个地方看,因为iOS 8是如此新。 非常感谢

在这里输入图像说明

我有同样的问题。 我必须做所有3个build议才能正常工作:

将标签上的行数设置为0。

cellForRowAtIndexPath:在分配所需string之前,将单元格标签的文本设置为空string。

viewDidAppear:调用[tableView reloadData]

我确实尝试过单独做,而且不起作用。

然后,我有一个小问题,但是…在重新加载表之前,文本的原始布局是在视图中,并导致一个奇怪的看文本“闪烁”,当文本被调整。 所以我创build了一个布尔,并将单元格标签设置为隐藏。 当viewWillAppear:得到调用我设置该布尔为true,并在cellForRowAtIndexPath:我取消隐藏标签,如果布尔是真的。

无论如何希望他们得到这个固定的,因为这是一个很棒的function。

我也遇到了Auto-Resize的格式问题,特别是UILabel对象。 最后为我工作的是修改cellForRowAtIndexPath:并首先分配实际的string值之前,将UILabel的文本分配给一个空string,如下所示:

 cell.myLabel.text = @""; cell.myLabel.text = @"Here is the label's actual string value"; 

我有一种感觉,苹果公司仍然有一些问题与自动resize。

我有一些问题,我在我的代码第一,确保内容拥抱优先级大于另一个元素秒,调用viewDidLoad()中的tableView.reloadData()

 override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) tableView.reloadData() } 

最后,调用tableView的dataSource函数来使高度dynamic化:tableView(tableView:UITableView,estimatedHeightForRowAtIndexPath indexPath:NSIndexPath) – > CGFloat和这个tableView(tableView:UITableView,heightForRowAtIndexPath indexPath:NSIndexPath) – > CGFloat

 override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return tableView.rowHeight } override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return UITableViewAutomaticDimension } 

也许是有用的

真诚的唐尼