drawWithRect Tail Truncation 사용(Paragraph 아님 Rect)

4562 단어 SwiftiOS
drawInRect 등에서 String을 그리는 경우(UIlabel 등도 마찬가지) Paragaph를 대상으로 지정된 범위 내에서 중간에 끊어진 String을 자동으로 선택합니다.Tail Truncation을 만들려면 lineBreakMode에서 ByTruncationTail을 지정하십시오. 아래와 같습니다.
let style = NSMutableParagraphStyle()
style.lineBreakMode =.ByTruncatingTail
style.alignment = NSTextAlignment.Left
let stringAttrubute = [
    NSParagraphStyleAttributeName: style
]
그러나 Paragraph가 Word Wrapping을 동시에 진행하고 묘사 범위 내에서 Tail Truncation을 진행하려면 어떻게 해야 하는가.
예를 들어 다음 그림과 같은 느낌을 주고 싶어요.그림의 문장 뒤에 또 문장이 있지만draw의 범위는 그것보다 작다.

참고로 아래의 지정은 잘못된 것이다.
style.lineBreakMode = .ByTruncatingTail | .ByWordWrapping
↓ 결론
draw With Rect의 옵션 지정에 Truncates Last Visible Line이 있기 때문에 이것을 사용하면 된다는 것을 알았습니다.
NSMutable Paragraph Style은 ByWordWrapping, drawWith Rect에서는 Truncates LastVible Line으로 지정됩니다.
let style = NSMutableParagraphStyle()
style.lineBreakMode =.ByWordWrapping
style.alignment = NSTextAlignment.Left
let stringAttrubute = [
    NSParagraphStyleAttributeName: style
]
let sampleText = "このStringは、このように...(略)...するようにしたい。途中で改行がはいるのである。\nどうすればいいのだろう?あ、できた!\nそして、まだまだStringは続く....(略)...."
sampleText.drawWithRect(
    CGRectMake(0,0,800,300), 
    options: .UsesLineFragmentOrigin | .TruncatesLastVisibleLine,
    attributes: stringAttrubute  as [NSObject : AnyObject],
    context: nil)
그나저나 Objective-C에는 다음 내용만 완성할 수 있다(감각).
[sampleText drawInRect:CGRectMake(0,0,800,300)
                       withFont: font
                       lineBreakMode:NSLineBreakByTruncatingTail];

좋은 웹페이지 즐겨찾기