尝试设置和访问nib tableview单元格。基本上与使用原型tableviewcell创建uitableview并设置其标识符并通过
访问它相同-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Fill table in with data
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
问题是你如何做这个笔尖。由于笔尖IB没有原型选项?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
MPMediaItem *song = [self.songsList objectAtIndex:indexPath.row];
NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
NSString *durationLabel = [song valueForProperty: MPMediaItemPropertyGenre];
cell.textLabel.text = songTitle;
cell.detailTextLabel.text = durationLabel;
return cell;
}
-(void)viewDidLoad {
[self.tableView registerNib:[UINib nibWithNibName:@"MusicViewController" bundle:nil] forCellReuseIdentifier:@"Cell"];
}
答案 0 :(得分:1)
使用nib文件创建自定义tableviewCell。创建后,您有三个文件YourCustomCell.h YourCustomCell.m和YourCustomCell.xib
在YourCustomCell.h中添加IBOutlet,并在YourCustomCell.xib中将它们与相应的标签连接。
现在在cellForRowAtIndexPath中:添加以下内容:
YourCustomCell *yourCustomCell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
yourCustomCell.labelInCustomCell.textLabel.text = songTitle;
yourCustomCell.detailsLabelInCustomCell.textLabel.text = durationLabel;
return yourCustomCell;
希望这对你有所帮助。
答案 1 :(得分:0)
您在xib文件中创建单元格,然后在代码中(可能在viewDidLoad中)使用registerNib:forCellReuseIdentifier:注册nib。在cellForRowAtIndexPath中,您只需使用与传递给register方法相同的标识符对单元格进行出列。不需要输入if(cell == nil)子句,因为它永远不会是nil。