我有一个自定义UITableViewCell
,其中有两个UIViews
。我想更改BackgroundColor半径和UIViews
的其他一些属性。
但我无法这样做。
这是我的setUp。
第1步:
Create A Custom Cell with XIB.
第2步:在Cell Identifer
XIB
中输入CustomCell
名称。
第3步:NIB
viewDidLoad
UINib *nib = [UINib nibWithNibName:@"CustomCell" bundle:nil];
[[self mTableView] registerNib:nib forCellReuseIdentifier:@"CustomCell"];
步骤4:索引方法行的单元格:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Create an instance of ItemCell
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
[cell updateCellView];
return cell;
}
步骤5:检查两次出口连接都很好。
第6步:自定义单元格类:
#import "TransportCell.h"
@implementation TransportCell
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)updateCellView
{
self.backgroundView.backgroundColor = [UIColor redColor];
}
@end
此代码对我的Cell View没有影响。
我调试代码。当我记录backgroundView
时,我会在调用nil
方法时获得updateCellView
:
这是我的CustomCell' Xib:
我必须更改内部UIView的属性。(蓝色)
答案 0 :(得分:0)
不是在cellForRowAtIndexPath
中调用方法,而是尝试这个:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Create an instance of ItemCell
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
return cell;
}
然后在自定义方法中
- (void)updateCellView
{
self.backgroundView.backgroundColor = [UIColor redColor];
// reload the table view
[self.tableView reloadData];
}
答案 1 :(得分:0)
你需要添加[tableview reloadData] 在方法更新单元格视图中
答案 2 :(得分:0)
理想情况下,呈现单元格所需的所有信息都应来自数据源或其他事件。例如,如果要更改边框颜色,则应表示某个实体(例如用户)执行了某个事件,或者数据源中的某些内容已更改,例如值已超过其阈值。
数据源或这些事件的更改应触发刷新整个表:
-(void) reloadData
或某些细胞:
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
只有这样细胞才会得到更新。
答案 3 :(得分:0)
在TransportCell中尝试这种方法,它的快速代码对于目标c来说是相同的
{{1}}
答案 4 :(得分:0)
您正在更改self.backgroundview.backgroundColor
nil
中的单元格默认为UITableViewStylePlain
,UITableViewStyleGrouped
为非零。
' backgroundView'将被添加为所有其他视图背后的子视图。
@property (nonatomic, strong, nullable) UIView *backgroundView;
答案 5 :(得分:0)
使用此:
self.contentView.backgroundColor = [UIColor redColor];
希望这有帮助!