12

我正在为 iOS7 转换一些应用程序,并且在工具栏中放置的按钮中的文本存在问题。看起来字体大小要大得多,无法调整大小。所以我在 iOS6 中非常适合的文本按钮不再可能了。屏幕不够宽。是否可以在不重做整个应用程序的情况下进行调整?为什么会有这种愚蠢的变化?我真的很想使这些应用程序适应 iOS7 的其他几个原因。

4

2 回答 2

22

您可以使用setTitleTextAttributes:forState:. 例如,要为所有 UIBarButtonItems 设置标题文本字体,您可以这样做:

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];

或者,仅将其设置为一个,

[myBarButton setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];

您还可以创建包含 UIButtons 的 UIBarButtonItems,并完全控制这些 UIButtons 的显示方式(字体、字体大小等)。这可以在 Interface Builder 中通过将 UIButton 拖到 UIToolbar 上来完成,或者在代码中完成:

UIButton* button = ...;
UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[toolbar setItems:@[barButton, ...] animated:YES];

请注意,如果您采用这种方法,您的 IBActions/segues 将需要连接到 UIButton 而不是 UIBarButtonItem。

于 2013-10-11T15:17:56.760 回答
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)

    }
于 2015-11-18T07:22:12.073 回答