我想畫一個UITextView
包括一些文本的內部可定製線(使用NSAttributedString
)繪製一個UITextView內的線路 - NSAttributedString
這裏就是我試圖
NSString *unicodeStr = [NSString stringWithFormat:@"%C%C%C", 0x00A0, 0x0009, 0x00A0]; //nbsp, tab, nbsp
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:unicodeStr];
NSRange strRange = NSMakeRange(0, str.length);
NSMutableParagraphStyle *const tabStyle = [[NSMutableParagraphStyle alloc] init];
tabStyle.headIndent = 16; //padding on left and right edges
tabStyle.firstLineHeadIndent = 16;
tabStyle.tailIndent = -16;
NSTextTab *listTab = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentCenter location:40 options:@{}]; //this is how long I want the line to be
tabStyle.tabStops = @[listTab];
[str addAttribute:NSParagraphStyleAttributeName value:tabStyle range:strRange];
[str addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:2] range:strRange];
但無論什麼樣的價值我提供製表位位置(在這種情況下爲40)和tailIndent(這裏爲-16),該行僅尊重headIndent並跨越整個UITextView寬度(當然不包括headIndent)。
編輯 - 我很確定這個問題是因爲我沒有使用正確的Unicode字符(雖然他們似乎是合乎邏輯的選擇)。如果這給了某人一個提示,如果我在第二個nbsp之後添加一個空格,即結束,則該選項卡被限制爲單個標籤長度
你能提供一個你想讓文字看起來像什麼的例子嗎? –
我試圖實施hr標籤(水平線)。從html轉換時,它們不受NSAttributedString支持 – lostInTransit