【问题标题】:Custom height for tableviewcell with uiimageview带有 uiimageview 的 tableviewcell 的自定义高度
【发布时间】:2015-10-11 08:22:50
【问题描述】:

我有一个带有 uiimageview 的 uitableview。它的高度和宽度(始终为正方形)是通过情节提要中设置的自动布局计算的,并且工作正常。但是当我运行我的应用程序时,tableviewcell 的高度没有更新。我尝试了以下代码来修复它:

tblvwPosts?.rowHeight = UITableViewAutomaticDimension
tblvwPosts?.estimatedRowHeight = 300

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("HomeTableViewCell", forIndexPath: indexPath) as! HomeTableViewCell

    cell.setNeedsUpdateConstraints()
    cell.updateConstraintsIfNeeded()

    return cell
}

但是添加上面的代码后tableviewcell的高度变成了44px。 顺便说一句,我希望有类似于 instagram/facebook 的行,其中将有一个宽度/高度等于设备宽度的方形图像,其下方将是一些标签和按钮。

问候
潘卡伊

【问题讨论】:

    标签: swift uitableview


    【解决方案1】:

    如果您有自定义单元格,可以使用此方法强制您的单元格行高为自定义值;

        func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
    {
        return 100.0;//Choose your custom row height
    }
    

    或者您可以简单地使用此代码更改值;

    self.tableView.rowHeight = 100.0
    

    【讨论】:

    • 我希望通过自动布局而不是通过编码来实现,否则所有尺寸的 iphone 都会有很多条件
    【解决方案2】:

    在 tableVC 的 viewDidLoad 中尝试将估计高度设置为情节提要中的高度,然后将其重置为自动尺寸

    override func viewDidLoad(){
        super.viewDidLoad
        tableView.estimatedRowHeight = tableView.rowHeight
        tableView.rowHeight = UITableViewAutomaticDimention
    }
    

    【讨论】:

    • 我已经检查过了,但在情节提要中找不到 tableview 或 tableviewcell 的估计高度。我只能在编码中设置它
    • 它没有说估计但是如果你选择单元格并转到检查器,有行高
    • 在您的代码中,您首先将其设置为自动尺寸并返回到估计的行高。我不认为这是你想要的顺序,先得到估计然后让它相应地计算自动尺寸
    • 不,它仍然无法正常工作,我已经设置了上面的代码,并且在情节提要中的行高为 300,但我得到的行高度为 44(默认行高)
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多