0

概述

我使用情节提要在 UIScrollView 中添加了 UITableView。

我的简单目标是在这个表视图中设置 UITableViewCell 的样式。

代码

目前,我已经向视图控制器添加了一个 UITableView 属性,并在情节提要中添加了插座。

@interface NWDetailViewController : UIViewController<UITableViewDelegate,
    UITableViewDataSource> {
  IBOutlet UIScrollView *scrollView;
  ...
  IBOutlet UITableView *tableView;
  IBOutlet NSLayoutConstraint *tableViewHeightConstraint;
}

创建了一个自定义的 UITableViewCell (NWLocationTableViewCell),添加了一个属性并连接了故事板中的插座:

@interface NWLocationTableViewCell : UITableViewCell {
  IBOutlet UILabel *titleLabel;
}

这就是我试图在我的控制器中填充单元格的方式:

-(UITableViewCell *)tableView:(UITableView *)thisTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  static NSString *cellIdentifier = @"LocationCell";

  // Same with both tableView and thisTableView
  NWLocationTableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:cellIdentifier];
  if (cell == nil) {
      cell = [[NWLocationTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                    reuseIdentifier:cellIdentifier];
  }


  [cell.titleLabel setText:@"test"];

  // or

  UILabel *label = (UILabel *)[cell.contentView viewWithTag:2112];
  [label setText:@"test"];

  NSLog(@"%@, %@", cell.contentView.subviews, cell.class);

  return cell;
}

但是这两种方法都没有产生任何结果,因此我无法设置它的样式。添加任何静态对象(例如 UIButton)也不会出现。

日志显示:"(), NWLocationTableViewCell"

4

1 回答 1

0

它是一个命名问题。

在您的方法标头中,您thisTableView作为要使用的 tableView 传递,但随后您调用[tableView dequeueReusableCellWithIdentifier];以获取一个单元格。它应该会产生一个错误,但可能还有另一个同名的变量,或者一个属性?无论如何,如果那是您的逐字代码,那就是您的错误。

于 2013-07-17T22:47:07.437 回答