如何在ios中设置tableView单元格标题?

Posted

技术标签:

【中文标题】如何在ios中设置tableView单元格标题?【英文标题】:How to set tableView cell title in ios? 【发布时间】:2013-12-24 06:59:46 【问题描述】:

我正在解析 JSON 并将其存储在一个数组中。我有一个自定义单元子类,我试图在其中从解析的 JSON 的内容中设置标签的标题。 这是解析过程。

@implementation BlogScreenViewController    
 - (void)viewDidLoad

 [super viewDidLoad];
  self.jsonArray = [[NSMutableArray alloc]init];

 NSError *error = nil;
 NSURL *url = [NSURL URLWithString:@"http:web_services/blog.php"];
 NSData *data = [NSData dataWithContentsOfURL:url];
 self.jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
 for (NSDictionary *obj in self.jsonArray)    

    NSLog(@"JSON string output :- %@ ", [obj objectForKey:@"titre"]); // shows titles

在自定义单元格子类中

    // set blog title label
    UILabel *blogTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(60, 20, 200, 20)];
   // blogTitleLabel.text = @"This is blog title";  // This shows properly if used. 

    for (NSDictionary *obj in blogScreenVC.jsonArray ) //This doesn't work.
    
         blogTitleLabel.text = [NSString stringWithFormat:@"%@",[obj objectForKey:@"titre"]];
    
    [blogTitleLabel setFont:[UIFont systemFontOfSize:9]];
    [self addSubview:blogTitleLabel];

【问题讨论】:

你在这方面遇到了什么问题.. 清楚地提出您的问题?您的问题标题谈论 tableview 标题。但在你的问题中,身体告诉细胞的名字?清楚地写一些描述。 将自定义单元格标签 obj 作为属性在自定义单元格类中使用,在表格视图委托方法中使用该 obj。 @Romance - 请为您的方法提供任何示例代码? @icodes 请参阅下面的答案,由 dilep 回答。它会按照以下说明解决您的问题。 【参考方案1】:

不要在 customcell 类中设置 lebel.text,而是将其添加到 cellForRowAtIndexPath

customcell.h文件中创建标签属性

@property (nonatomic, weak) IBOutlet UILabel *label;

并在customcell.m 文件中合成它。

@synthesize label = _label;

在你viewcontroller.m 文件中

#import "CustomCell.h"

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *simpleTableIdentifier = @"CustomCell"; 

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil) 
    
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
     

    if (self.jsonArray.count !=0) 
      NSMutableDictionary * tmpDictn = [self.jsonArray objectAtIndex:indexPath.row];
      if ([tmpDictn objectForKey:@"titre"] != nil)
        
          cell.label.text = [tmpDictn objectForKey:@"titre"];
        else
          cell.label.text = @"tmpDictn does not contain data";
        
    else
          cell.label.text = @"jsonArray does not contain data";
    

    return cell;

【讨论】:

以上是关于如何在ios中设置tableView单元格标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableView 中设置动态单元格分隔线? [复制]

如何在 TableView Cell 中设置随机图像

如何在 UITableView 中设置单元格高度?

如何在 UITableView 样式分组中设置单元格的角半径?

在tableview ios中使用UILabel的单元格的动态高度

根据内容动态调整tableview单元格的高度 - iOS Swift