我正在为iOS7转换一些应用程序,并且工具栏中的按钮中的文本存在问题。 看起来字体大小更大,无法调整大小。所以我的文字按钮在iOS6中非常适合不再可能。屏幕不够宽。是否可以在不重做整个应用程序的情况下进行调整?为什么这个愚蠢的改变?我真的想要将应用程序调整到iOS7,原因还有其他几个原因。
答案 0 :(得分:22)
您可以使用setTitleTextAttributes:forState:
设置UIBarItems(包括UIBarButtonItems)的标题文本属性。例如,要为所有UIBarButtonItem设置标题文本字体,可以执行以下操作:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];
或者,只设置一个,
[myBarButton setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];
您还可以创建包含UIButtons的UIBarButtonItems,并完全控制这些UIButton的显示方式(字体,字体大小等)。这可以通过将UIButton拖到UIToolbar或代码中在Interface Builder中完成:
UIButton* button = ...;
UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[toolbar setItems:@[barButton, ...] animated:YES];
请注意,如果采用这种方法,您的IBActions / segues将需要连接到UIButton而不是UIBarButtonItem。
答案 1 :(得分:0)
夫特:
UIToolbar.appearance().barTintColor = TOOLBAR_BACKGROUND_COLOR
if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) {
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal)
}