如何自定义UINavBar?
我正在使用以下代码向我的应用程序添加自定义导航栏。但我希望能够根据视图更改导航栏,这可能吗?
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect
{
UIColor *color = [UIColor colorWithRed:82/255.0 green:80/255.0 blue:81/255.0 alpha:1.0];
UIImage *img = [UIImage imageNamed: @"navbar.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = color;
}
@end
如果没有,是否可以仅将图像而不是标题文本添加到导航栏?
I am using the following code to add a custom navbar to my app. But I want to be able to change the navbar depending on the view, is this possible?
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect
{
UIColor *color = [UIColor colorWithRed:82/255.0 green:80/255.0 blue:81/255.0 alpha:1.0];
UIImage *img = [UIImage imageNamed: @"navbar.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = color;
}
@end
If not, is it possible to just add an image to the navbar instead of title text?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我强烈反对使用类别来覆盖 UINavBar 上的
-drawRect
,因为此设计将在即将发布的 iOS 版本上崩溃。不过,为导航栏标题创建自定义图像和按钮非常容易。以下是我直接从我的一个应用程序的生产代码中提取的一些代码片段。它在导航栏的标题区域中创建一个自定义图像按钮,但创建图像也同样容易:
这就是按钮在应用程序 VideoBot 中的样子:
以下是使用图像作为导航栏标题的示例:
I would strongly discourage using a category to override
-drawRect
on a UINavBar as this design will break on a soon to be released iOS version.It is very easy to create custom images and buttons to the navBar title though. Here's some code snippets I pulled directly out of production code for one of my apps. It creates a custom image button in the navBar's title area, but it's just as easy to create an image instead:
And this is what the button looks like in the app VideoBot:
Here's an example of using an image for the navbar title: