0

我正在使用 Rubymotion 构建一个 iOS 应用程序,我需要为 tabBarItems 设置自定义字体。我使用此代码并且没有收到任何错误,但字体也没有改变。

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

怎么了?

4

3 回答 3

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 的特性:

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

同样,我还没有尝试过,但它是直译,在 Objective-C 版本中加入了一点 Motion。

于 2012-11-22T22:15:44.810 回答
0

是否Futura-Medium默认包含在 iOS 上?如果没有,扔进去resources/

于 2012-11-27T01:30:17.990 回答
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];
于 2012-11-19T11:09:42.827 回答