无法访问 UITableViewCell 中 UIView 的图层属性 [重复]

Posted

技术标签:

【中文标题】无法访问 UITableViewCell 中 UIView 的图层属性 [重复]【英文标题】:Can not access layer's properties of an UIView in UITableViewCell [duplicate] 【发布时间】:2012-01-03 05:56:03 【问题描述】:

我遇到了一个奇怪的问题。 我创建了一个继承自 UITableViewCell 的类,其中包含一个成员 UIView。

@interface MTReportPieChartTableViewCell : UITableViewCell 
    UIView *_colorView;

@property (nonatomic, retain) IBOutlet UIView *colorView;
@end

在实现文件中,我想访问colorView的图层属性,但是xcode显示“没有完成”。

@implementation MTReportPieChartTableViewCell
@synthesize colorView = _colorView;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) 
        self.colorView.layer.cornerRadius = 3.0f;    // Error occurs in this line
    
    return self;

@end

xcode 说“在前向类对象 'CALayer' 中找不到属性 'cornerRadius'”。 但是,我可以在其他类中访问cornerRadius。

MTReportPieChartTableViewCell *cell = (MTReportPieChartTableViewCell *) [tableView dequeueReusableCellWithIdentifier:[MTReportPieChartTableViewCell identifier]];
cell.colorView.layer.cornerRadius = 3.0f;    // This line works fine!

为什么会这样!我完全不知道我在代码中做错了什么!

【问题讨论】:

【参考方案1】:

你在这个类中导入了<QuartzCore/QuartzCore.h>吗?

【讨论】:

不,但是我导入了 ,我可以声明一个 CALayer* 类型的变量。在我声明 MTReportPieChartTableViewCell *cell 的文件中,该文件仅导入 。我考虑过这个案例。 这是正确的导入,对我有用。【参考方案2】:

尝试进入内容视图层:

self.contentView.colorView.layer.cornerRadius = 3.0f; 

【讨论】:

这不起作用。 self.contentView 没有 colorView。

以上是关于无法访问 UITableViewCell 中 UIView 的图层属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法连接 UITableViewCell 自定义单元格 IBOutlet

Xcode UI 测试:UITableViewCell 上的辅助功能查询失败

无法在 xcuitestcase 的 uitableviewcell 内的 uistackview 中找到带有图像的 uibutton

无法使用 uiimageview 同时满足 uitableviewcell 中的约束

在 UITableViewCell 中添加 UICollectionView 后 UI 突然发生变化

iOS - UI 测试在 UITableViewCell 中查找图像