UIButton虚线在目标c下划线

正常的下划线工作,但点缀下线似乎不工作?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(100, 10, 300, 300); NSMutableAttributedString *titleString = [[NSMutableAttributedString alloc] initWithString:@"Durga Vundavalli"]; // making text property to underline text- [titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [titleString length])]; // using text on button [btn setAttributedTitle: titleString forState:UIControlStateNormal]; [self.view addSubview:btn]; 

以下是来自文档的枚举:

 typedef NS_ENUM(NSInteger, NSUnderlineStyle) { NSUnderlineStyleNone = 0x00, NSUnderlineStyleSingle = 0x01, NSUnderlineStyleThick NS_ENUM_AVAILABLE_IOS(7_0) = 0x02, NSUnderlineStyleDouble NS_ENUM_AVAILABLE_IOS(7_0) = 0x09, NSUnderlinePatternSolid NS_ENUM_AVAILABLE_IOS(7_0) = 0x0000, NSUnderlinePatternDot NS_ENUM_AVAILABLE_IOS(7_0) = 0x0100, NSUnderlinePatternDash NS_ENUM_AVAILABLE_IOS(7_0) = 0x0200, NSUnderlinePatternDashDot NS_ENUM_AVAILABLE_IOS(7_0) = 0x0300, NSUnderlinePatternDashDotDot NS_ENUM_AVAILABLE_IOS(7_0) = 0x0400, NSUnderlineByWord NS_ENUM_AVAILABLE_IOS(7_0) = 0x8000 } 

你不能只把NSUnderlinePatternDot 。 如果你想要两行点呢? 你必须使用PatternStyle

 [titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:(NSUnderlinePatternDot|NSUnderlineStyleSingle)] range:NSMakeRange(0, [titleString length])]; 

正如文中所说,你必须使用一个面具:

讨论
将样式,模式和可选的单词掩码进行或运算,以产生NSUnderlineStyleAttributeNameNSStrikethroughStyleAttributeName的值。