1
我想要一個按鈕,與此類似:有沒有辦法隱式地讓一個按鈕成爲多行?
ONE
TWO
其中一個詞是比其他。然而,它可能是:
THREE
FOUR
或者任何數字,真的。有沒有辦法與NSAttributedStrings,我可以說在第一個字後總是有一個換行符?
我想要一個按鈕,與此類似:有沒有辦法隱式地讓一個按鈕成爲多行?
ONE
TWO
其中一個詞是比其他。然而,它可能是:
THREE
FOUR
或者任何數字,真的。有沒有辦法與NSAttributedStrings,我可以說在第一個字後總是有一個換行符?
這實際上不是關於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
是故意的。我無法抗拒。