2013-10-16 81 views
3

我一直在我的頭上撞牆,這太久了。我想用光標與字體的行高保持一致來創建雙間隔的輸入文本。iOS UITextView:在不改變光標高度的情況下增加行間距?

我已經嘗試了多種方法:

  • 使用NSLayoutManager的委託-layoutManager:lineSpacingAfterGlyphAtIndex:withProposedLineFragmentRect:
  • 使用一個屬性串並設置NSParagraphStyle的-lineHeightMultiple和-lineSpacing性能
  • 使用自定義NSTextStorage也嘗試設置該款式。

......但他們都結束了一個克拉那實在太大,無論是延伸到上方的空格或每行下面的空白。

有關我可以嘗試實現此佈局的任何想法?

回答

5

如果你已經有了所需的佈局,問題是尖的只是大小,你可以簡單地繼承和UITextView的覆蓋下面的方法:

- (CGRect)caretRectForPosition:(UITextPosition *)position 
{ 
    CGRect *originalRect = [super caretRectForPosition:position]; 
    // Resize the rect. For example make it 75% by height: 
    originalRect.size.height *= 0.75; 
    return originalRect; 
} 

這會做的伎倆,這個工程上都iOS6的和7對我來說

+1

完美!我想要的確切效果是: originalRect.size.height = self.font.lineHeight 但這絕對解決了我的佈局問題。謝謝! – cdownie

相關問題