我一直在开发应用程序几个小时。
我正在从模板制作一个主视图详细信息应用程序。 AppDelegate.m didFinishLaunchingWithOptions允许我添加一些自定义GUI代码来改变导航栏之类的东西。所以我继续为主导航栏的背景添加自定义背景,就像这样......
//custom navbar
UIImage *navigationBarBackground = [UIImage imageNamed:@"NavigationBarBackground.png"];
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];
真棒!现在我的导航栏有自定义bgs!
现在在主视图区域,我在视图的右上角有一个+按钮,当你点击它时,打开一个窗口覆盖其余的内容,但不是一个全屏,只是一个地方到输入一些信息,如表格。我用.xib创建了一个新类。我从IB设计了新窗口。
但是当弹出新窗口时,导航栏不是我的自定义图像,它是默认的...
所以我花了好几个小时试图找到改变它的方法。最后,我想到了为UIToolbar添加一个自定义类,通过创建一个新类来生成应用的任何navBar,将某个图像加载到其背景中。大!我的.m文件看起来像这样:
#import "customToolbar.h" //for your information the .h for this is a blank { }
@implementation customToolbar
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
UIImage *image = [UIImage imageNamed:@"addBusKid-NavBar.png"];
CGContextDrawImage(c, rect, image.CGImage);
}
@end
太棒了,通过这个课程,我可以将任何bg图像应用到界面构建器中的导航栏。
...
现在,我的导航栏看起来都很好看,我觉得是时候改变一些文字了!所以,我开始回到我的AppDelegate.m
我添加了一些代码来更改所有导航栏文本的默认文本样式...
// Customize the title text for *all* UINavigationBars
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
UITextAttributeTextColor,
[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],
UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
UITextAttributeTextShadowOffset,
[UIFont fontWithName:@"Arial-Bold" size:0.0],
UITextAttributeFont,
nil]];
太好了,这改变了我的导航栏文本样式......但等等,当我打开我用.xib制作的弹出窗口时,就像我在AppDelegate中添加了navigationBar样式一样,它并没有影响它的外观。所以无论我制作什么外观协议,它们都不会影响我的自定义类xibs外观...
好吧,我尝试制作一个自定义类,就像我为导航栏做的那样,我可以申请给它一些风格。但我无法做到这一点(如果你知道请告诉我)......
然后我花了3个多小时搜索这个.xib文件中的文本样式!我放在AppDelegate中的任何东西都没有触及它!
所以,彻底向你解释了自己。我的问题是:
如何设置在界面构建器中创建的UIBarButton文本的样式。
你是否知道我可以编写的自定义类,然后我可以应用于对象,因为我为此做了导航栏,或者有一些方法可以根据我的方式添加这个.xibs UI元素进行风格化在AppDelegate中声明。请建议我。我做完了我的作业。
顺便说一句,这是我的第一篇文章!我已经有宾至如归的感觉!感谢您的支持,我希望我也可以帮助其他人。
答案 0 :(得分:0)
只需在.xib(视图控制器)类中创建一个@property
,它将UIBarButtonItem声明为IBOutlet。将此(通过IB)链接到.xib按钮表示,然后设置UIBarItem(父类)textAttributes方法的样式。
有关详细信息,请参阅此SO问题: How can i change Font of UIBarButtonItem?