将单元格xib自动调整为tableview单元格宽度和行高

时间:2014-10-30 04:44:38

标签: ios iphone uitableview swift

我目前正在使用自定义tableviewcell xib,并希望将其大小自动调整为tableview的宽度和行的高度。

单元格视图的大小不会自动调整到tableview。所以我试图改变tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)委托内的框架,没有反映出任何变化(如果我在它实际改变之前和之后打印框架尺寸。)

有谁知道这方面的解决方案?最好的情况是使单元格的框架自动调整到tableview的宽度和行高。

编辑:经过进一步检查后,问题可能与iOS8 Size类有关。当我在xib内调整单元格大小时,它将扩展到比表格视图大小更大的宽度。标签应该位于中心(已经设置了约束并以编程方式,得到了相同的结果)。

以下是截图:

enter image description here

2 个答案:

答案 0 :(得分:6)

发现问题,这是我的错误。我从不在ViewController中为TableView设置约束,因此它保持了iOS 8中引入的Size Classes定义的默认基本大小。

这就是为什么单元格的宽度大约是视图控制器宽度的两倍。

答案 1 :(得分:0)

我从你的问题中理解的是你想要将单元格的宽度设置为等于表格的宽度和单元格的高度等于tableviewCell的高度!

默认情况下tableviewCell的高度为44.因此您可以将Cell的高度设置为44!你可以通过

得到tableview的宽度
self.tableview.frame.size.width

你可以通过 cell.frame 设置单元格的框架!

例如

CGRect cellRect = CGRectMake(0, 0, self.tableview.frame.size.width ,44);
cell.frame = cellRect;

希望一切顺利,这可能对你有帮助!