我已经开发应用程序几个小时了。
我正在从模板制作一个主视图详细信息应用程序。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 中添加导航栏样式时一样,它不会影响它的外观。所以无论我制作什么外观协议,它们都不会影响我的自定义类 xibs 外观......
好吧,我尝试制作一个自定义类,就像我为导航栏所做的那样,我可以应用它来赋予它一些风格。但我无法做到这一点(如果你知道请告诉我)......
然后我花了 3 个多小时在这个 .xib 文件中寻找某种方式来设置文本的样式!我在 AppDelegate 中放的任何东西都没有触及它!
因此,在向您彻底解释了自己。我的问题是:
如何设置在界面生成器中创建的 UIBarButton 文本的样式。
无论您是否知道我可以编写的自定义类,然后我可以将其应用于对象,就像我为此做导航栏一样,或者有一些方法可以添加这个 .xibs UI 元素以根据我在 AppDelegate 中声明的内容进行风格化. 请给我提意见。我已经完成了我的家庭作业。
顺便说一句,这是我的第一篇文章!我已经有宾至如归的感觉了!感谢您的支持,我希望我也能对其他人有所帮助。