Objective c 中的 UIButton 虚线下划线
UIButton dashed underline in Objective 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
。如果你想要 2 行点怎么办?您必须使用 Pattern
和 Style
.
[titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:(NSUnderlinePatternDot|NSUnderlineStyleSingle)] range:NSMakeRange(0, [titleString length])];
你必须使用口罩,正如医生所说:
Discussion
The style, pattern, and optionally by-word mask are OR'd
together to produce the value for NSUnderlineStyleAttributeName
and
NSStrikethroughStyleAttributeName
.
普通下划线可以,但虚线下划线似乎不起作用?
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
。如果你想要 2 行点怎么办?您必须使用 Pattern
和 Style
.
[titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:(NSUnderlinePatternDot|NSUnderlineStyleSingle)] range:NSMakeRange(0, [titleString length])];
你必须使用口罩,正如医生所说:
Discussion
The style, pattern, and optionally by-word mask are OR'd together to produce the value forNSUnderlineStyleAttributeName
andNSStrikethroughStyleAttributeName
.