2012-03-28 84 views

回答

1

的iOS 5.0推出了一些外观定制选项为UISegmentedControl。我想你会是最感兴趣的方法是:

- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state 

讨论
属性字典可以指定字体,文本颜色,文字阴影颜色,和文字阴影为标题的偏移文本属性字典,使用NSString UIKit Additions Reference中的键。

更新

如果你编程方式创建UISegmentedControl,你可以先走一步,打电话给你创造它之后此方法。如果从笔尖加载,则必须将其设置为插座,并在您的awakeFromNibviewDidLoad方法中调用此方法。

现在,您的“请点击相应的按钮”文本是在导航提示?我不确定你是否可以修改它的外观。也许你可以做一些欺骗...

  • 设置self.navigationItem.prompt = @" ";所以它的技术设置,但没有任何显示。
  • 制作一个UIView,将您的UISegmentedControl添加到该模型,以及UILabel,您可以使用frame.origin.y = -20.0左右的样式进行设计。然后,将该视图设置为self.navigationItem.titleView。确保你设置了clipsToBounds = NObackgroundColor = [UIColor clearColor]

这样,它应该显示带有自定义标签的分段控件,至少在理论上是这样。让我知道结果如何。

+0

谢谢乔,我该如何调用该方法。它不是射击。这是我正在使用的代码: – 2012-03-28 21:00:50

+0

- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { \t NSLog(@“%s”,__FUNCTION__); \t [[UISegmentedControl外观] setTitleTextAttributes: \t [NSDictionary的dictionaryWithObjectsAndKeys: \t [的UIColor whiteColor],UITextAttributeTextColor, \t [的UIColor colorWithRed:1.0绿:1.0蓝色:1.0阿尔法:1.0],UITextAttributeTextShadowColor, \t [NSValue valueWithUIOffset: UIOffsetMake(0,1)],UITextAttributeTextShadowOffset, \t [UIFont fontWithName:@“Copperplate”size:11。0],UITextAttributeFont, \t零] \t \t \t \t \t \t \t \t forState:UIControlStateNormal]; } – 2012-03-28 21:02:50

+0

Joe,我发现代码会改变分段的数组元素,但它不能改变导航item.prompt。除非有人发布替代解决方案,否则我可能会采取一些措施。无论如何,这并不是很有用。我很欣赏你给我的代码提示,所以我会将其标记为已解决。 – 2012-03-29 10:55:37