我在自定义表格视图单元格内有一个IBOutlet。

@property (weak, nonatomic) IBOutlet UIView *innerContainer;

我想覆盖吸气剂为
-(UIView *)innerContainer
{
    UIColor * shadowColor= [UIColor colorWithRed:199/255.0f
                                           green:178/255.0f
                                            blue:153/255.0f
                                           alpha:1];

    _innerContainer.layer.shadowOffset = CGSizeMake(0, 0);
    _innerContainer.layer.shadowColor = [shadowColor CGColor];
    _innerContainer.layer.shadowRadius = 4;
    _innerContainer.layer.shadowOpacity = .75;

    CGRect shadowFrame = _innerContainer.layer.bounds;
    CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath;
    _innerContainer.layer.shadowPath = shadowPath;

    return _innerContainer;
}

但似乎没有效果。另一方面,如果我将阴影添加到里面的innerContainer
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

那么效果在那里?

我尝试添加@synthesize innerContainer=_innerContainer,但这没什么区别。

有没有一种方法可以覆盖IBOutlet的吸气剂?

最佳答案

这不是正确的方法。使用当前代码,每次访问innerContainer都会执行设置阴影的工作。这可能无法正常工作,因为您没有直接在代码中访问innerContainer,并且永远不会执行getter。另一方面,如果您多次访问该属性,则每次都会执行该工作,这太过分了。而是改写表视图单元格的awakeFromNib方法,并将此逻辑放在此处。建立所有出口后立即调用此方法,这是创建阴影的逻辑的正确位置。

关于ios - 如何覆盖IBOutlet的getter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25069848/

10-12 14:29