2015-05-04 80 views
-1

我试图在UITableViewCell中插入很多视图。 我添加视图并计算所需的常量。我无法解决一个问题。内层标签可以多行做大的时候UITableView只是初始化它正确地没有显示:一些裁剪标签,错误高度等iOS为什么UIView只有在重新加载后才能正确显示UITableView

enter image description here

但是当我重装tableview中或滚动到底元素和滚动回到错误的一个单元格,所有视图都能正确显示

enter image description here

EDITED

例如:我有的UITableViewCell。每个单元格包含多个属性(单独的视图)。每个属性视图都有标题(灰色文本)和属性值(再次显示单个视图)。每个属性值视图可能有不同的高度。而且我认为身高并没有在第一时间计算正确。

当我首先构建UITableViewCell时,我构建了所有的属性视图,然后将每个视图添加到单元格并计算常量。

+0

确保您已经正确设置了UITableView的y坐标。 –

+0

您是否实现了UITableView代表' - tableView:heightForRowAtIndexPath:'您在哪里计算指定行的高度(如果可能)?它肯定会让你在你的标签上调用'NSString -boundingRectWithSize:'方法,以便能够从一开始就评估你的单元格所需的高度。 –

+0

请添加一些代码,以便您更好地理解 – iPhone

回答

0

我已经解决了问题。

当我得到UITableViewCell时,它的框架宽度为325,但tableView框架宽度为375.由于这种内部视图构建的方式不正确。现在我只是将cellView的contentView设置为tableView框架。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let identifier = "ListCell" 
    var cell = tableView.dequeueReusableCellWithIdentifier(identifier) as? ListViewCell 

    cell!.contentView.frame = tableView.frame 

    // additional setup 

    return cell! 
} 
相关问题