4
我有一個UITextView掛鉤到一個平移手勢識別器。當我將手指拖到文本視圖上時,我使用characterIndexForPoint方法來確定手指在哪個字符上方&,然後突出顯示該點處的文本。characterIndexForPoint返回不同的結果爲相同的參數
在某些情況下,視圖中的文本有換行符,即使傳入相同的參數,此方法似乎會返回不同的結果。被觸摸的方法連續調用兩次,一旦charIndex是167,然後是270.
我已經檢查了文本視圖的AttributedString,它在兩種情況下都是相同的字體大小。
- (IBAction)touched:(UIPanGestureRecognizer *)sender {
if (self.txtView.isFirstResponder) {
return;
}
if (sender.state == UIGestureRecognizerStateChanged) {
CGPoint touchPoint = [sender locationInView:self.txtView];
NSUInteger charIndex = [self.txtView.layoutManager
characterIndexForPoint:touchPoint
inTextContainer:self.txtView.textContainer
fractionOfDistanceBetweenInsertionPoints:0];
...
這是一個已知的錯誤嗎?難道我做錯了什麼?
'觸摸的方法連續調用兩次,一旦charIndex是167,然後是270.' - 是兩個調用中使用的相同'touchPoint'嗎? –
是的,這是(這就是爲什麼我寫「傳遞相同的參數」) – Epaga