2014-01-26 105 views
12

我正在製作一個格式化屏幕截圖的應用程序,我正在使用NSAttributedString格式化輸入到UITextView中的文本,但有些行太靠近了。如何在NSAttributedString中添加行間距

我想知道是否有人可以提供代碼示例或提示如何更改這些行之間的邊距,以便它們之間有更多空間。

下面是另一個桌面屏幕編寫程序的圖像,它演示了我的意思,請注意每個位表示「DOROTHY」之前是否有一點空間。

enter image description here

回答

41

以下示例代碼使用段落樣式到文本的段落之間調整間距。

UIFont *font = [UIFont fontWithName:fontName size:fontSize]; 
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
paragraphStyle.paragraphSpacing = 0.25 * font.lineHeight; 
NSDictionary *attributes = @{NSFontAttributeName:font, 
          NSForegroundColorAttributeName:[UIColor whiteColor], 
          NSBackgroundColorAttributeName:[UIColor clearColor], 
          NSParagraphStyleAttributeName:paragraphStyle, 
          }; 
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes]; 

要有選擇地調整某些段落的間距,只將段落樣式應用於這些段落。

希望這會有所幫助。

11

大答案@Joe史密斯

如果有人想看到這個樣子斯威夫特2 *:

let font = UIFont(name: String, size: CGFloat) 
    let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.paragraphSpacing = 0.25 * font.lineHeight 
    let attributes = [NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle] 

    let attributedText = NSAttributedString(string: String, attributes: attributes) 
    self.textView.attributedText = attributedText 
+0

納撒尼爾,這幾乎是完美的 - 除了段落樣式必須初始化爲NSMutableParagraphStyle()。 NSParagraphStyle是不可變的,所以它的間距屬性是隻讀的,不能修改 – Natalia

+0

好點,@NataliaChodelski!我已經修復了它在我的代碼中,但沒有在我的帖子中。我做了改變。 :) – Nathaniel

相關問題