我正在尝试使用此代码在所有 View 中使用 UnderLine setTextAttribute

 [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor redColor],
//        NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle),
        (NSString *) kCTUnderlineStyleAttributeName:@(kCTUnderlineStyleDouble),
        NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Bold" size:17]}];

但它不起作用,我知道另一种使用 UILabel 创建自定义 NSAttributedString 并将其设置在 TitleView 上的方法,但有没有其他方法可以使用外观协议(protocol)来实现这一点?

最佳答案

NSUnderlineStyleAttributeName 应该为您完成这项工作。

试试这个老兄:

    NSDictionary *attributes = @{
                                 NSUnderlineStyleAttributeName: @1,
                                 NSForegroundColorAttributeName : [UIColor redColor],
                                 NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Bold" size:17]
                                 };

    [[UINavigationBar appearance] setTitleTextAttributes:attributes];

更新:

我引用了苹果的文档, 似乎不可能通过外观协议(protocol)。

它说

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

我也尝试过创建新的简单项目。看不到线。


Apple 文档:

UINavigationBar

NSString Keys for Text Attributes Dictionaries

关于ios - UINavigationBar setTitleTextAttributes with UnderLine Text,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27498361/

10-12 05:07