更改单个单元格的颜色(Objective-C)

时间:2016-02-01 13:57:45

标签: objective-c json tableview cell

我有一个json的tableview,我希望例如,如果我的标签=法国到不同颜色的单元格,是否可能?如何?

1 个答案:

答案 0 :(得分:0)

是的,这是一个极简主义的例子,使用UITableViewController。理想情况下,

中不应该有太多逻辑
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法,但这只是一个简单的例子。

#import "TableViewController.h"

@interface TableViewController ()

@property (readonly, nonatomic, strong) NSArray *countriesArray;

@end

@implementation TableViewController

- (id)init {
    self = [super init];
    if (!self) {
        return nil;
    }
    _countriesArray = @[@"France", @"Germany", @"Spain", @"Norway", @"Denmark", @"United States"];
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.countriesArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
    if ([self.countriesArray[indexPath.row] isEqualToString:@"France"]) {
        cell.backgroundColor = [UIColor grayColor];
    }
    else {
        cell.backgroundColor = [UIColor whiteColor];
    }
    cell.textLabel.text = self.countriesArray[indexPath.row];
    return cell;
}

@end