当前位置: 首页 > 面试题库 >

自动将自定义UITableViewCell和Label调整为文本

苏磊
2023-03-14
问题内容

我有一个UITableViewCell只有一个标签的自定义。当我在StackOverflow上阅读时,我还将Interface
Builder中的行数设置为0。

import UIKit

class CommonListViewCell: UITableViewCell {
    @IBOutlet var background: UIView!
    @IBOutlet var titleLabel: UILabel!
    override func awakeFromNib() {

        super.awakeFromNib()
        // Initialization code
        titleLabel.font = UIFont(name: "roboto", size: titleLabel.font.pointSize)
        NSLog("CommonListViewCell font changed")
    }    
}

这是视图控制器要使用的部分UITableView

override func viewDidLoad() {
    super.viewDidLoad()

    self.lvMain.delegate = self;
    self.lvMain.dataSource = self;
    self.lvMain.registerNib(UINib(nibName: "CommonListViewCell", bundle: nil), forCellReuseIdentifier: "commonlistidentifier")
    self.lvMain.estimatedRowHeight = 100
    self.lvMain.rowHeight =    UITableViewAutomaticDimension
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("commonlistidentifier", forIndexPath: indexPath) as! CommonListViewCell

    // Configure the cell...
    cell.titleLabel?.text = prayerList[indexPath.row].name
    cell.titleLabel?.sizeToFit()
    setLabelFont(cell.titleLabel!)
    Utils.nightCheck([cell.titleLabel!])
    return cell
}

因此,.sizeToFit()不做任何更改-它仍然将文本省略为1行,并且我需要标签的行数尽可能多,并且单元格的大小也适合标签。


问题答案:

您需要使用自动调整大小的单元格。

tableView.estimatedRowHeight = 100
 tableView.rowHeight =    UITableViewAutomaticDimension

在情节提要或xib中,必须确保在单元格中设置了适当的约束。不要在标签中设置预定义的高度限制。只要确保您给出了顶部和底部约束即可。如果不确定文本,还可以给标签设置最小高度限制。



 类似资料:
  • iOS 8为tableViews引入了一种基于内容自动调整单元格高度的方式(通过AutoLayout)。 我已经开始处理标签、图像等了。 但是,我想不出一种方法,让表格视图单元格在单元格的文本视图发生变化时自动增长? 关于设置的更多信息:单元格内的UITextView对表视图单元格的contentView有水平和垂直约束。我还禁用了文本视图的滚动。 我还尝试手动更改单元格的高度约束,但单元格也不会

  • 我已经创建了UIViewController并在其上添加了UITableView(通过自动布局固定到所有四条边)。 然后我设置了(44)和[UITableViewAutomaticDimension 现在,我想添加具有动态高度的自定义。 我接下来要做的是: 我的OrderStatusHeaderView是一个xib视图,它使用autolayout将UITableView固定到所有4个边上。 < c

  • 问题内容: 有什么方法可以影响console.log提供的自定义对象吗?我试图覆盖customObject.prototype.toString方法,但这没有用。 有任何想法吗? 问题答案: 在node.js中,调用每个参数时不使用格式占位符。因此,如果在对象上定义方法,则将调用该方法以获取对象的自定义字符串表示形式。 例如: 输出: foo = BAR 或使用课程:

  • 我需要构建一个类似Airbnb的用于显示不动产的表索引,为此我定制了一个高度为200的原型UITableViewCell、两个自定义标签(使用故事板创建)和一个背景图像(以编程方式添加)。所有这些都放在使用情节提要添加的TableViewController上。 数据是从JSON文件中提取的,包含10项。但在iPhone模拟器(4英寸)中, A)它不会滚动超过前三项。我只能看到第三个项目的上半部分

  • 问题内容: 大家好! 我有这样的电话: 是否可以将其包装在自定义函数中 但 保留回调? 就像是: 将是这样的: 问题答案: 编辑: 最近对此表示赞同,我不得不说我不再这样做。返回a,因此您可以直接使用promise以更一致和更可靠的方式执行我在这里所做的几乎所有工作。 然后用法如下: 当然,我一直都这样做。您可以在实际的成功Callack中执行回调,也可以将回调分配为成功回调: 用法如下所示:

  • DynamicHeights是一个动态表格元素高度(动态TableViewCell)的例子。实际应用场景在iOS开发中会经常遇到不规律的TableViewCell,往往需要根据内容的多少而动态调整这些Cell的大小。在http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/ 中,有详细的解说开发的流程以及这么处理的原因。里面的大