我正在开发一个使用UITableViews的应用程序,其中包含自定义的程序化UI更改。例如,我有一些程序化的UITableViewCell更改:
...
cell.backgroundColor = [UIColor clearColor];
cell.textLabel.font = [UIFont fontWithName:@"Georgia" size:14];
cell.selectedBackgroundView = anImageView;
...
和UITableView设置如下:
self.table.separatorColor = [UIColor darkGrayColor];
我如何将UITableView和UITableViewCell的子类创建到每当我创建新表时,它会继承这些属性?我在每个表中都有所有这些属性(大约有3-4个),并希望减少不必要的代码混乱。
答案 0 :(得分:1)
我会创建两个子类:
您自己的表视图子类(您可以在initWithFrame:style:方法中对表视图进行更改)和您自己的表视图单元子类(您可以在initWithStyle中进行更改:reuseIdentifier:方法)
您可能还想覆盖表视图的dataSource属性,并创建自己的协议,强制-(UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)path
方法返回您的UITableViewCell子类而不是标准类。
答案 1 :(得分:1)
UITableViewCell最容易重用,因为它们(应该)始终是一个单独的类(如果适用,还有nib),但是,重用Table View本身需要一个子类。考虑到在每个班级制作UITableViews是多么容易,这有点多,但如果你觉得必须,你可以。请注意,在涉及子类时,UITableView类 非常 挑剔。