如何子类化 UINavigationBar 以与 Three20/iOS5 一起使用?

发布于 2024-12-10 03:12:31 字数 356 浏览 0 评论 0原文

你们中的许多人可能已经注意到,我们不能再创建一个类别来覆盖 iOS5 中的 UINavigationBar drawRect。现在实际上,如果不使用 UINavigationBar 的子类并将其设置在 MainWindow.xib 中的 navigationController->navigationBar 内,我没有看到实现此自定义的好方法。但是,TTNavigator 无法识别 navigationController,因为每个 TTViewController 都有自己的 TTNavigationController 超类。

Many of you have probably noticed that we cant anymore create a category to override UINavigationBar drawRect in iOS5. Now actually I don't see a good way of implementing this customization without using a subclass of UINavigationBar and set it inside a navigationController->navigationBar in my MainWindow.xib. However, TTNavigator do not recognize that navigationController since every TTViewController has their own superclass of TTNavigationController.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2024-12-17 03:12:31

我不知道如何解决 Three20 但一般来说为了支持 IOS 5 你可以使用这个方法

UIImage *image = [UIImage imageNamed:@"header.png"];

if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    //iOS 5 new UINavigationBar custom background
    [navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault];
} 
else{
    UIImageView *imgView = [[[UIImageView alloc] initWithImage:image] autorelease];
    [imgView setUserInteractionEnabled:NO];
    [imgView setTag:TOOLBAR_TAG];
    [navigationBar insertSubview:imgView atIndex:0];
}

I don't know how to solve it for Three20 but in general for supporting IOS 5 you can use this method

UIImage *image = [UIImage imageNamed:@"header.png"];

if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    //iOS 5 new UINavigationBar custom background
    [navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault];
} 
else{
    UIImageView *imgView = [[[UIImageView alloc] initWithImage:image] autorelease];
    [imgView setUserInteractionEnabled:NO];
    [imgView setTag:TOOLBAR_TAG];
    [navigationBar insertSubview:imgView atIndex:0];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文