Objective C - 核心文本 在位置查找索引?

发布于 2024-11-26 16:42:07 字数 365 浏览 3 评论 0原文

我正在尝试获取最接近某个点的字符的索引。

下面的代码工作得很好,因为我的文本对齐方式设置为左,一旦我将其更改为右或居中,它就会给我错误的索引。在获得最接近点的索引时考虑文本对齐的解决方案是什么?

CTLineRef line = (CTLineRef)[lines objectAtIndex:i];
index = CTLineGetStringIndexForPosition(line, point);  

编辑:

我的文本对齐是通过添加一个段落样式来完成的,该段落样式的textAlignment设置为kCTCenterTextAlignment

I am trying to get the index of the closest character to a point.

The code below works perfectly fine as ling as my text alignment is set to left, as soon as I chage it to right or center it gives me the wrong index. What would be the solution to consider the text alignment while getting closest index to a point?

CTLineRef line = (CTLineRef)[lines objectAtIndex:i];
index = CTLineGetStringIndexForPosition(line, point);  

EDIT:

My text alignment is done by adding a paragraph style that has it's textAlignment setting to kCTCenterTextAlignment

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等风来 2024-12-03 16:42:07

该点是相对于线的原点(随对齐方式而变化)的,因此您必须使用 CTFrameGetLineOrigins 并将线原点的 x 值添加到点的 x 值中。

The point is relative to the line's origin (which changes with the alignment), so you have to use CTFrameGetLineOrigins and add the x value of the line's origin to your point's x value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文