如何在TabBarItem上更改字体?

时间:2012-11-19 11:02:11

标签: objective-c rubymotion

我正在使用Rubymotion构建iOS应用程序,我需要为tabBarItems设置自定义字体。我使用这段代码,但没有错误,但字体也没有改变。

tabBarController.tabBarItem.setTitleTextAttributes({UITextAttributeFont => UIFont.fontWithName('Futura-Medium', size:17)}, forState:UIControlStateNormal)

有什么问题?

3 个答案:

答案 0 :(得分:0)

试试这个:

    [yourTabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
    [UIColor whiteColor], UITextAttributeTextColor, 
    [NSValue valueWithUIOffset:UIOffsetMake(0,0)], UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"Futura-Medium" size:17.0], UITextAttributeFont, nil]
    forState:UIControlStateNormal];

答案 1 :(得分:0)

字面翻译,这变为:

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'ness:

yourTabBarItem.setTitleTextAttributes(
  {
      UITextAttributeTextColor:        UIColor.whiteColor,
      UITextAttributeTextShadowOffset: NSValue.valueWithUIOffset:UIOffsetMake(0,0), 
      UITextAttributeFont:             UIFont.fontWithName("Futura-Medium", size:17.0)
  },
  forState:UIControlStateNormal)

同样,我没有试过这个,但它是一个字面翻译,在Objective-C版本中引入了一点动作。

答案 2 :(得分:0)

iOS上默认包含Futura-Medium吗?如果没有,请将其丢入resources/