1

で選択した文字の実際のポイントを取得しようとしていますNSTextContainer:

func handleTouch(gestureRecognizer: UIGestureRecognizer) {
   var location = gestureRecognizer.locationInView(self)
   let startPoint = self.layoutManager.locationForGlyphAtIndex(0)
   location = CGPoint(x: location.x - startPoint.x, y: location.y - startPoint.y)
   var fraction: CGFloat = 0
   let index = self.layoutManager.glyphIndexForPoint(location, inTextContainer: textContainer, fractionOfDistanceThroughGlyph: &fraction)
}

そして、それは正常に機能し、によって設定された最初の改行まで

NSParagraphStyle.hyphenationFactor = 2

すべてのハイフンはインデックスを 1 ポイント移動しglyphIndexForPoint、間違ったインデックスを取得します。改行モードを有効にして正しいインデックスを取得するには?

4

1 に答える 1

0

同様の関数characterIndexForPoint(_:inTextContainer:fractionOfDistanceBetweenInsertionPoints:) を試してください

詳細については、この質問を見ることができます

于 2016-01-12T07:18:02.010 に答える