tableViewController 上的自动大小视图

Posted

技术标签:

【中文标题】tableViewController 上的自动大小视图【英文标题】:Auto size view on tableViewController 【发布时间】:2016-10-19 09:42:21 【问题描述】:

我的 tableViewController 顶部有一个视图。该视图名为 viewBackground。 它在那里显示用户点击的帖子,表格单元格将显示 cmets。

我想要做的是根据标签theLabel 的大小调整viewBackground 的大小。 我在单元格中通过将单元格中的标签设置为0 行并实现了这个小代码:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 205

我该如何处理我的viewBackground

这是tableView的图片:

【问题讨论】:

显示你的tableview屏幕UI @HimanshuMoradiya 已添加。 我听不懂你的问题。请澄清一下你真正想要什么 【参考方案1】:

您可以创建包含两个部分的表格视图。第一部分将包含选定的帖子;第二部分- cmets。如果你需要,我可以提供一些代码。

【讨论】:

【参考方案2】:

添加了这段代码,它有帮助!

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    if let headerView = tableView.tableHeaderView 
        let height = headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
        var headerFrame = headerView.frame

        //Comparison necessary to avoid infinite loop
        if height != headerFrame.size.height 
            headerFrame.size.height = height
            headerView.frame = headerFrame
            tableView.tableHeaderView = headerView
        
    

【讨论】:

【参考方案3】:

我建议为您当前的 tableView 创建一个标题 - 而不是在其上方添加一个外部视图 - 然后您可以按照此 answer 进行操作,它应该可以帮助您了解如何计算标签的字符串高度并返回它在tableView(_:heightForRowAt:) 方法中。

希望这会有所帮助。

【讨论】:

我想通过添加视图来制作标题? 是的,通过向 tableView 添加一个新单元格并实现viewForHeaderInSection 方法来简化它。请检查答案中的url,它应该可以帮助您计算标签的高度,但不是referenceSizeForHeaderInSection,它应该只是高度(heightForHeaderInsSection) 无论如何,如果您完全不明白,请确保使用viewForHeaderInSection 适合您的情况并发表评论,我很乐意提供帮助:)

以上是关于tableViewController 上的自动大小视图的主要内容,如果未能解决你的问题,请参考以下文章

不能只用 tableViewController 获得大标题

使用 tableviewcontroller 时导航栏上的模糊效果

倒带时自动重新加载 TableViewController

UITableViewControllers 上的 prepareforSegue 方法

iOS tableview上textView在编辑状态时,tableview自动上移的功能

TableViewController 导致 TabBar 项目标题更改为导航栏标题