gpt4 book ai didi

objective-c - 自定义 drawRect : in UINavigationBar subclass

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:34 25 4
gpt4 key购买 nike

我想子类化 UINavigationBar 以便我可以在它的 drawRect: 中进行自定义绘图。

这是我的代码:

导航 Controller (.h)

@interface CORENavigationController : UINavigationController

@property (strong, nonatomic) CORENavigationBar *customNavigationBar;

@end

导航 Controller (.m)

@implementation CORENavigationController

@synthesize customNavigationBar = _customNavigationBar;

- (UINavigationBar *)navigationBar {
if (![self customNavigationBar]) {
[self setCustomNavigationBar:[[CORENavigationBar alloc] init]];
}
return [self customNavigationBar];
}

导航栏 (.h)

@interface CORENavigationBar : UINavigationBar

@end

导航栏 (.m)

@implementation CORENavigationBar

- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
}

问题是导航栏没有标题,例如我只能看到标准的蓝色背景。

一旦我删除了以下方法,标题又回到了那里:

- (UINavigationBar *)navigationBar {
if (![self customNavigationBar]) {
[self setCustomNavigationBar:[[CORENavigationBar alloc] init]];
}
return [self customNavigationBar];
}

为什么标题消失了?我调用 superdrawRect: 并且不更改任何其他内容。

谢谢!

最佳答案

找到了!答案如下:

https://stackoverflow.com/a/9610801/1306956

在这种情况下,它将是:

[navigationController setValue:[[CORENavigationBar alloc] init] forKeyPath:@"navigationBar"];

在 iOS 5.1.1 (9B206) 上测试。就像一个魅力。

关于objective-c - 自定义 drawRect : in UINavigationBar subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com