如何使用单元格的引用在Viewdidappear中正确设置Frame

时间:2015-08-14 18:43:04

标签: ios iphone swift uitableview custom-cell

我希望使用MPMoviePlayer显示捕获的视频用于此目的我设计了一个自定义单元格,部分数量为1,我在tableView中加载10个记录,因此行数取决于数组计数所以每次从getService显示10到10个记录并且我的问题是框架没有在单元格中正确设置为此目的我在一个方法中编写了整个代码并在viewDidAppear()中调用该方法并且在获取单元格引用时在viewDidAppear()NSIndexPath中出现致命错误我在考虑viewDidAppear()之前正在调用我的细胞参考,所以如何解决这个问题请告诉我任何解决方案?

1 个答案:

答案 0 :(得分:1)

您不应该使用视图控制器viewDidAppear中的单元格帧进行操作。

框架包括:左,顶部,宽度和高度。

  • 始终为0;
  • 顶部由表格指定,并且基于索引路径以及之前单元格,部分标题和表格标题的高度;
  • 宽度始终等于表格的宽度;
  • 身高您可以自行指定UITableViewDelegate方法optional func tableView(_ tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat

但很可能你对另一件事感兴趣。并且您希望在单元格中布局UI元素。如果是,您有几种方法可以做到这一点:

  • 覆盖单元格中的func layoutSubviews()方法并设置所需的所有帧。每次更改帧时都会调用此方法。所以这正是你所需要的。
  • 您还可以使用自动布局指定所需的布局。这可以在storyboard / xib文件或代码中完成(在单元格的指定构造函数中)。