我正在使用 Rubymotion 构建一个 iOS 应用程序,我需要为 tabBarItems 设置自定义字体。我使用此代码并且没有收到任何错误,但字体也没有改变。
tabBarController.tabBarItem.setTitleTextAttributes({UITextAttributeFont => UIFont.fontWithName('Futura-Medium', size:17)}, forState:UIControlStateNormal)
怎么了?
我正在使用 Rubymotion 构建一个 iOS 应用程序,我需要为 tabBarItems 设置自定义字体。我使用此代码并且没有收到任何错误,但字体也没有改变。
tabBarController.tabBarItem.setTitleTextAttributes({UITextAttributeFont => UIFont.fontWithName('Futura-Medium', size:17)}, forState:UIControlStateNormal)
怎么了?
直译过来就是:
yourTabBarItem.setTitleTextAttributes(
NSDictionary.dictionaryWithObjectsAndKeys(
UIColor.whiteColor, UITextAttributeTextColor,
NSValue.valueWithUIOffset:UIOffsetMake(0,0), UITextAttributeTextShadowOffset,
UIFont.fontWithName("Futura-Medium", size:17.0), UITextAttributeFont, nil
),
forState:UIControlStateNormal)
我没有尝试过代码,但有人可能会认为您可以使用 Ruby 哈希而不是 NSDictionary,从而消除一些 Objective-C 的特性:
yourTabBarItem.setTitleTextAttributes(
{
UITextAttributeTextColor: UIColor.whiteColor,
UITextAttributeTextShadowOffset: NSValue.valueWithUIOffset:UIOffsetMake(0,0),
UITextAttributeFont: UIFont.fontWithName("Futura-Medium", size:17.0)
},
forState:UIControlStateNormal)
同样,我还没有尝试过,但它是直译,在 Objective-C 版本中加入了一点 Motion。
是否Futura-Medium
默认包含在 iOS 上?如果没有,扔进去resources/
尝试这个 :
[yourTabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor,
[NSValue valueWithUIOffset:UIOffsetMake(0,0)], UITextAttributeTextShadowOffset,
[UIFont fontWithName:@"Futura-Medium" size:17.0], UITextAttributeFont, nil]
forState:UIControlStateNormal];