标签从顶部底部有额外的空间?

Posted

技术标签:

【中文标题】标签从顶部底部有额外的空间?【英文标题】:Label having extra space from top bottom? 【发布时间】:2018-02-06 07:28:51 【问题描述】:

我在下面创建了一个自定义单元格,如下所示。

问题是当我第一次启动时它需要高度(从顶部和底部)。但是当向上和向下滚动时,额外的高度被删除。我无法理解为什么会出现这个问题。

顶部标签的行号是固定的。 第二个标签的行号为 0。

控制器代码

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
    
    return UITableViewAutomaticDimension


func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
    
    return UITableViewAutomaticDimension


func numberOfSections(in tableView: UITableView) -> Int 
    
    return 1


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    
    return 15


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    
    let cell:SampleCell = tableView.dequeueReusableCell(withIdentifier: "SampleCell") as! SampleCell
    if indexPath.row == 0 
        cell.labelDescription.text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.f Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.f Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.f Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like "
        
     else 
        cell.labelDescription.text = "skdfjksj gkfjg"
    
    tableView.sizeToFit()
    return cell

UIImage 的约束

顶部 UILabel 的约束

底部UILabel的约束

【问题讨论】:

向我们展示所有这些组件的约束。 给你的每个标签一个不同且可见的背景颜色,它可能只是提示出了什么问题 第二行发生了什么? 请检查我更新的问题 从底部标签移除底部约束,这是额外的,如果你希望你的标签随文本一起增长,不要给它底部约束并根据标签大小计算你的单元格的高度。 【参考方案1】:

UITableViewAutomaticDimension设置为heightForRowAt

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
   return UITableViewAutomaticDimension  

UILabel 中的numberOfLine 设置为0 & 设置leading trailing top bottom constraint

【讨论】:

以上是关于标签从顶部底部有额外的空间?的主要内容,如果未能解决你的问题,请参考以下文章

iOS图表,删除底部xAxis标签创建的额外空间

多行 UILabel 导致额外的填充

引导程序上的移动视图在容器底部有额外的空白空间

当我 NSLog myBtn.constraints 时会记录额外的约束

UITableView 在“下拉刷新”期间顶部有额外空间

如何删除这些讨厌的额外空间