在UIScrollView / UIView中设置UITableViewCell样式

时间:2013-07-17 20:26:28

标签: ios objective-c uitableview uiscrollview

概述

我使用故事板在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"

1 个答案:

答案 0 :(得分:0)

这是一个命名问题。

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