我有一个自定义UITableViewCell
子类为ItemDetailCell
,它有许多连接到我的storyboard文件的插座。其中一个自定义UIView
子类为PriorityView
,它在nib文件中有一个UIView
(priorityStatusView)的出口。
@property (weak, nonatomic) IBOutlet PriorityView *redPriorityView;
在nib文件(PriorityView.xib)中,我已将File的Owner Custom Class连接到PriorityView。在PriorityView.m
我使用以下内容在drawRect
中加载nib文件:
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"PriorityView" owner:self options:nil];
[self addSubview:[array objectAtIndex:0]];
在我的表视图控制器中cellForRowAtIndexPath
我试图设置redPriorityView.priorityStatusView
的背景颜色,但首先我调用drawRect
以便加载nib。我没有使用initWithFrame
来加载nib的原因是除了不加载nib之外它似乎使PriorityView
无效。我怀疑这种情况正在发生,因为视图已经加载了IBOutlet
。我知道它是空的,因为我已经打电话:
NSLog(@"%@, %@", detailCell.redPriorityView, detailCell.redPriorityView.priorityStatusView);
并且都返回null。但是,使用drawRect
加载nib确实会将两个日志都返回为null。我现在唯一的问题是背景颜色不会改变:
detailCell.redPriorityView.priorityStatusView.backgroundColor = [UIColor yellowColor];
我也试过使用setBackgroundColor
无济于事。实际上,redPriorityView
或redPriorityView.priorityStatusView
的所有属性似乎都没有改变。背景颜色只是一个例子。
很抱歉这么做,我只是很难完成这项工作。在此先感谢您的帮助!
修改
我尝试使用redPriorityView
中的方法设置ItemDetailCell
的属性并通过cellForRowAtIndexPath
调用它,但即使方法中的NSLog
被称为属性不要改变。我认为问题可能在于视图如何连接到PriorityView
文件。
答案 0 :(得分:0)
实施- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
方法,并尝试在其中设置背景颜色。希望这有帮助!
答案 1 :(得分:0)
尝试将访问者设置为强。也许...