1

我应该在方法cell.titleLabelcell == nil一部分中设置 a 的字体cellForRowAtIndexPath:吗?还是之后?我还以UIImage编程方式添加了一些标签和一个。UIImage不会改变,但标签的值会改变。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *identifier = @"identifier";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];

 [cell.titleLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 15.0f]];
      [cell.descriptionLabel setFont:[UIFont fontWithName: @"Asap-Regular" size: 10.0f]];

  }

  **// or should it go here?**

  return cell;
}

谢谢你的帮助。

4

2 回答 2

3

您在大括号中设置字体是正确的,因为此代码应该执行一次。外部大括号应该是访问您的数据源的代码,例如,当您像这样做某事时 cell.label.text = [self.dataArray objectAtIndex:i];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *identifier = @"identifier";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
  if (cell == nil) {
     //executed once per cell
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault          reuseIdentifier:identifier] autorelease];
    [cell.titleLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 15.0f]];
    [cell.descriptionLabel setFont:[UIFont fontWithName: @"Asap-Regular" size: 10.0f]];
  }
//Executed every time
 cell.label.text = [self.dataArray objectAtIndex:i];
  return cell;
}
于 2013-02-05T11:40:22.797 回答
1

如果单元格字体与行号无关,那么它总是必须进入 if(cell == nil)。

于 2013-02-05T11:40:36.180 回答