我使用故事板在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"
答案 0 :(得分:0)
这是一个命名问题。
在您的方法标题中,您将thisTableView
作为要使用的tableView传递,但随后您调用[tableView dequeueReusableCellWithIdentifier];
来获取单元格。它应该生成错误,但可能是该名称或属性还有另一个变量?无论如何,如果这是你的逐字代码,那就是你的错误。