0

我正在尝试学习创建自定义元素。我从导航栏开始,只是想为红色导航栏创建一个类。

我创建了一个扩展 UINavigationBar 的类,并在其中包含以下代码:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.barStyle = UIBarStyleBlackTranslucent;
        self.tintColor = [UIColor redColor];
    }
    return self;            
}

所以让我们在我的场景中看到我有一个看法。我添加了一个带有界面构建器的导航栏,并将其类设置为使用我上面的新类。但是颜色没有改变。我究竟做错了什么?

4

1 回答 1

1

必须在 drawRect 函数中进行修改。例如,我最终做的是:

- (void)drawRect:(CGRect)rect
{
    UIColor *color = [UIColor redColor];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
    CGContextFillRect(context, rect);
    self.tintColor = color;
}
于 2013-08-16T06:11:46.000 回答