tableviewcell的高度和框架尺寸?

时间:2015-05-05 07:55:22

标签: ios uitableview

我有一个tableview单元格,我正在尝试将AVPlayer附加到。

  • 从cellforrowatindexpath创建单元格
  • 将row = 8的高度设置为heightforrowatindexpath为200,其他行使用默认高度
  • 在cellforrowsatindexpath中,如果row == 8,则调用customCell方法,该方法创建avplayer并附加到cellview.contentview。我通过调用cellforrowatindexpath:row8
  • 来获取cellView

然而,当我为第8行定制单元格时,单元格的大小为0 0 0 0.因此我无法将avplayer视图附加到单元格。

这是控制台日志,注意创建时单元格大小不为零,但在customCellView中返回零。有什么想法吗?

heightforrowatindexpath: row = 8, height = 200.000000
cellForRowAtIndexPath: row=8
cell.contentView.frame = {{0, 0}, {320, 199.5}}, cell.frame = {{0, 352}, {320, 200}}
customCellView: customCell.contentView.frame ={{0, 0}, {0, 0}}, textlabel = (null)
customCell.frame ={{0, 0}, {0, 0}}
heightforrowatindexpath: row = 8, height = 200.000000

2 个答案:

答案 0 :(得分:1)

您是否实施了此方法?

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

您可以指定特定indexPath中每个项目的大小。这可能是你问题的答案。

答案 1 :(得分:0)

我明白了。我在代码中犯了一个错误。

我在cellforrowatIndexpath中调用了customCell,后者又称为cellforrowatindexpath,以便首先获取要定制的单元格。在这种情况下,似乎cellforrowatindexpath为内部调用返回nil。要么必须在cellforrowatindexpath中自定义单元格,要么将*单元格传递给customizeCell。我使用后一种方法。