我想要一个类似于此的按钮:
ONE
TWO
一个词在另一个词之上。但是,它可能是:
THREE
FOUR
或任何数字,真的。有没有办法使用NSAttributedStrings,我可以说在第一个单词后总是有换行符?
答案 0 :(得分:3)
这真的不是关于NSAttributedString
或NSString
,而是关于按钮本身。您可以考虑将UIButton
子类化并覆盖setTitle:forState:
以自动将第一个空格替换为\n
。
具体来说,setTitle:forState:
看起来像这样
- (void)setTitle:(NSString *)title forState:(UIControlState)state {
NSRange firstSpaceRanger = [title rangeOfString:@" "];
if (firstSpaceRanger.location != NSNotFound) {
title = [title stringByReplacingCharactersInRange:firstSpaceRanger withString:@"\n"];
}
[super setTitle:title forState:state];
}
例如,给定one two three
这将产生
one
two three
要在UIButton
初始化程序中
self.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
是的,firstSpaceRanger
是故意的。我无法抗拒。 子>