3

我有一个带有一些委托方法的 UITableView。第一次加载时一切正常,但是在旋转期间我看到方法cellForRowAtIndexPath不记得了。为什么?我的委托方法是:

-(NSInteger)tableView:(UITableView *)tableView
  numberOfRowsInSection:(NSInteger)section{
       //.....
   }

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
     //......
 }
 - (UITableViewCell *)tableView:(UITableView *)aTableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath{

     //...This method is not called during the rotation of the device...

  }

  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
      //.......
  }
4

2 回答 2

1

旋转发生后,您需要使用[tableView reloadData]withinshouldAutorotateToInterfaceOrientation方法手动刷新表数据。

于 2012-10-30T15:00:37.420 回答
0

只有当单元格即将在屏幕上可见并且表格请求它时,才会调用该方法。一旦它在视图中,它不会被再次调用,直到它滚动出视图然后返回。

您有 3 个选项来处理旋转:

  • 使用自动布局
  • 使用弹簧和支柱
  • 覆盖 layoutSubviews(将在旋转时调用)

您选择的内容取决于您的单元格布局的复杂程度。另外,请确保表格在旋转时调整大小,否则单元格不会看到大小变化。

于 2012-10-30T14:50:53.520 回答