Swift 如何在tableView中调整单元格大小

Swift 如何在tableView中调整单元格大小,swift,uitableview,Swift,Uitableview,我想设计一个这样的桌面视图 但是当我调整的时候 在cellforrowatinedexpath中,我将cell.contentView.frame.width=CGFloat(tableView.bounds.width-40)放在单元格的contentView中,使单元格变小,但它显示错误: 无法分配给属性:“宽度”是仅获取的属性 那么如何使细胞变小 任何帮助都将不胜感激。您不能直接指定CGRect的宽度。CGRect由位置和大小组成,大小依次由高度和宽度组成 换句话说,frame.widt

我想设计一个这样的桌面视图

但是当我调整的时候

cellforrowatinedexpath
中,我将
cell.contentView.frame.width=CGFloat(tableView.bounds.width-40)
放在单元格的contentView中,使单元格变小,但它显示错误:

无法分配给属性:“宽度”是仅获取的属性

那么如何使细胞变小


任何帮助都将不胜感激。

您不能直接指定
CGRect
宽度。
CGRect
位置
大小
组成,
大小
依次由
高度
宽度
组成

换句话说,
frame.width
只是
frame.size.width

因此,正确的分配应该是:

cell.contentView.frame.size.width=CGFloat(tableView.bounds.width-40)

但这完全是一种糟糕的模式。
您应该将单元格设计为自定义单元格(在新的.xib文件中或作为故事板中的原型单元格),并使用自动布局来布局单元格内容视图的子视图。

您不能直接指定
CGRect
宽度。
CGRect
位置
大小
组成,
大小
依次由
高度
宽度
组成

换句话说,
frame.width
只是
frame.size.width

因此,正确的分配应该是:

cell.contentView.frame.size.width=CGFloat(tableView.bounds.width-40)

但这完全是一种糟糕的模式。
您应该将单元格设计为自定义单元格(在新的.xib文件中或作为故事板中的原型单元格),并使用AutoLayout来布局单元格的contentView的子视图。

要自定义类似于我发布的图像的单元格,只需在单元格的contentView中创建UIView,如下所示:

结果如下:


要自定义像我发布的图像那样的单元格,只需在单元格的contentView中创建一个UIView,如下所示:

结果如下:


使用
heightForRowAtIndexPath
方法

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return calculatedHeightForSpecificIndexPath
}

使用
heightforrowatinexpath
方法

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return calculatedHeightForSpecificIndexPath
}


为什么不放一个前导空格?我发现了问题,如果我想这样设计,我必须在单元格的contentView中放一个UIView。:)准确地说,然后在新视图中放置一个前导空格或任何其他结构是的,看我的答案。是的,就是这样。也可以考虑一下UISTACKVIEW,如果它对你的UIDESEG,幸福编码有意义,为什么你不放一个领先的空间?我发现了这个问题,如果我想这样设计,我必须把UIVIEW放在CytVIEW视图里面。准确地说,然后在新视图中放置一个前导空格或任何其他结构是的,看我的答案。是的,就是这样。同时考虑一下UISTACKVIEW,如果它对你的UIDESEG,快乐CODIN是有意义的,我没有看到任何不同的CelSi,只举一个例子:“我没有看到任何不同的那些CelSi只是举一个例子:”Alxija杨高兴我能帮助。如果我的回答对你有帮助,你能把它标记为接受吗?谢谢“但愿我能,”Khong问你这个问题。希望他能记住这个问题now@AlexIoja-杨:很高兴我能帮忙。如果我的回答对你有帮助,你能把它标记为接受吗?谢谢“但愿我能,”Khong问你这个问题。希望他现在能记住这个问题