0

我有一个自定义UITableViewCell子类,ItemDetailCell它有许多连接到我的故事板文件的插座。其中有一个自定义UIView子类,它有一个到nib 文件中的 (priorityStatusView) 的PriorityView出口。UIView

@property (weak, nonatomic) IBOutlet PriorityView *redPriorityView;

在 nib 文件 (PriorityView.xib) 中,我已将文件的所有者自定义类连接到 PriorityView。在PriorityView.m我加载 nib 文件时,drawRect使用:

NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"PriorityView" owner:self options:nil];
[self addSubview:[array objectAtIndex:0]];

在我的表格视图控制器中cellForRowAtIndexPath,我试图设置的背景颜色redPriorityView.priorityStatusView,但首先我调用drawRect的是加载笔尖。我不用来加载笔尖的原因是,除了不加载笔尖之外initWithFrame,它似乎还使 nib 无效。PriorityView我怀疑这是因为视图已经加载了IBOutlet. 我知道它是空的,因为我已经调用了:

NSLog(@"%@, %@", detailCell.redPriorityView, detailCell.redPriorityView.priorityStatusView);

并且都返回null。但是,使用drawRect加载笔尖确实会返回两个日志不为空。我现在唯一的问题是背景颜色不会改变使用:

detailCell.redPriorityView.priorityStatusView.backgroundColor = [UIColor yellowColor];

我也试过使用setBackgroundColor无济于事。实际上,redPriorityViewor的所有属性redPriorityView.priorityStatusView对我来说似乎都没有改变。背景颜色只是一个例子。

抱歉拖了这么久,我只是很难完成这项工作。提前感谢您的帮助!

编辑

我尝试设置redPriorityView使用方法的属性ItemDetailCell并通过调用它,cellForRowAtIndexPath但即使调用NSLog方法中的属性也不会改变。我认为问题可能在于视图如何连接到PriorityView文件。

4

2 回答 2

0

尝试将您的访问器设置为强。也许...

于 2013-01-16T23:19:41.940 回答
0

实现该- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath方法,并尝试在其中设置背景颜色。希望这可以帮助!

于 2013-01-16T22:37:04.137 回答