2016-05-30 6 views
4

長い文字列を持つUITextViewがあります。テキストビューのサイズはautolayoutによって決定され、テールを切り捨てるように設定されています。それは次のようになります。UITextViewが文字列を切り捨てる場所を決定します。

UITextView truncating

にはどうすれば表示される文字列と離れて切断されている範囲の範囲をdetermingことができますか?

答えて

0

charIndex is 0はそれが役に立つことを願って、この

class ViewController: UIViewController ,NSLayoutManagerDelegate{ 

@IBOutlet weak var textView: UITextView! 
var range :NSRange! 
override func viewDidLoad() { 
    super.viewDidLoad() 


    textView.textContainer.layoutManager?.delegate = self 
    let str = textView.text as NSString 
    //Regardless of the repeated string 
    range = str.rangeOfString("cillium adipisicing") 
    print(range) 


} 

// Invoked while determining the soft line break point. When NO, NSLayoutManager tries to find the next line break opportunity before charIndex 
func layoutManager(layoutManager: NSLayoutManager, shouldBreakLineByWordBeforeCharacterAtIndex charIndex: Int) -> Bool{ 

    // charIndex is in the string or not 
    if range.location != NSNotFound && NSLocationInRange(charIndex, NSRange(location: range.location + 1, length: range.length - 1)) { 
     print("range of string is truncated -> charIndex is \(charIndex)") 
    } 
    return true 
} 
} 

を試みるが、言葉ならば、それは "なし" と切り捨てBreakLineByWordに限られます:)

関連する問題