【问题标题】:xcode segmentedcontrol title - How to style the titlexcode segmentedcontrol title - 如何设置标题样式
【发布时间】:2012-03-31 05:13:18
【问题描述】:

请看附图。我正在尝试更改分段控件标题的颜色,但找不到合适的属性。如果这在 Apple 文档中,我很乐意看到在哪里......

谁能给我指点一下..

谢谢

【问题讨论】:

    标签: xcode uisegmentedcontrol


    【解决方案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]

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

    【讨论】:

    • 谢谢乔,我该如何调用该方法。它没有开火。这是我正在使用的代码:
    • - (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { NSLog(@"%s", FUNCTION); [[UISegmentedControl 外观] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], UITextAttributeTextColor, [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0], UITextAttributeTextShadowColor, [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset, [UIFont fontWithName:@"Copperplate" size:11.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; }
    • 乔,我发现代码会改变分段数组元素,但它不能改变导航项。提示。除非有人发布替代解决方案,否则我可能会删除这一点。无论如何,它并不太有用。我非常感谢您给我的代码提示,所以我会将其标记为已解决。
    • 对不起,直到几分钟前我才看到你们的 cmets。我已经用希望有所帮助的东西更新了我的答案。有时调整 UI 的外观会变得比应有的复杂得多。
    • 再次感谢乔。今天早上我会尝试这种技术.. 大卫
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2021-12-13
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多