2016-10-30 63 views
0

(iOS版8故事板) 我有我的tableView的权利细节的UITableViewCell。动态的UITableViewCell高度不工作

在故事板标题和右详细的标签设置为numberoflines = 0

我的代码:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    keyArray = [[NSMutableArray alloc]init]; 
    self.table.estimatedRowHeight = 140.0; 
    self.table.rowHeight = UITableViewAutomaticDimension; 
    [spinner startAnimating]; 
    [self cleanJson:prunedDictionary]; 

} 

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return UITableViewAutomaticDimension; 
} 

- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath{ 
    return UITableViewAutomaticDimension; 

} 

在cleanJson结束时,我跑[self.table reloadData]。 TableViewCell调整大小,但他们都调整大小相同的大小,它看起来像默认大小。 (我知道他们调整的原因是因为在故事板我将高度设置为200,他们都调整为更小的尺寸,当应用程序运行)

他们为什么不正确调整?

+0

你的约束可能是错误的。你能以某种方式将它们添加到你的问题吗? –

+0

@d。费尔伯没有限制,因为我提到,它不是一个自定义单元格。所以它已经有限制,据我所知 – huddie96

回答

1

的问题是,您使用的是内置的电池类型和内置的标题和细节标签。这些细胞类型不是自我大小。

您必须使用自定义单元格并自己进行设计,并使用约束来从内向外确定单元格的大小。

0

你不需要任何的这两个委托方法。单元格不能正确调整大小,因为您的自动布局约束设置不正确。请检查这些约束并确保从上到下至少存在一个约束视图路径。我的意思是,你可以从单元格本身的顶部逻辑跳转。通过所有的视图和垂直闭锁,然后从下到下。

这样的:

上海华

余量约束

视图

余量约束

的顶部。

视图

余量约束

上海华的底部。

中间的视图必须限制为固定大小..或他们必须能够根据其内容调整大小。很明显,最终的高度是所有这些边距和视图高度的组合。

这是一个线性函数

finalheight = topmargin + viewHeight + margin + viewHieght..etc....etc..bottommargin 
+0

这不是一个自定义单元格。所以限制已经确定,我相信 – huddie96

+0

你能证实它确实如此吗?假设是调试中唯一最大的敌人。 –

+0

它不是自定义单元格吗?我可以证实是的。该自定义单元不需要约束。几乎是积极的。 – huddie96

0

其实有一个办法 - 但我宁愿创建一个自定义UITableViewCell

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    let cell = self.tableView(tableView, cellForRowAt: indexPath) 
    let targetSize = CGSize(width: self.tableView.bounds.width, height: CGFloat.infinity) 

    return cell.systemLayoutSizeFitting(targetSize, 
             withHorizontalFittingPriority: 1000, 
             verticalFittingPriority: 900).height 
}