4
長い文字列を持つUITextView
があります。テキストビューのサイズはautolayoutによって決定され、テールを切り捨てるように設定されています。それは次のようになります。UITextViewが文字列を切り捨てる場所を決定します。
にはどうすれば表示される文字列と離れて切断されている範囲の範囲をdetermingことができますか?
長い文字列を持つUITextView
があります。テキストビューのサイズはautolayoutによって決定され、テールを切り捨てるように設定されています。それは次のようになります。UITextViewが文字列を切り捨てる場所を決定します。
にはどうすれば表示される文字列と離れて切断されている範囲の範囲をdetermingことができますか?
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
に限られます:)