- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要能够可靠地获取 Core Text 框架中点击字符的索引。我有这段代码,它可靠地得到了正确的行,但它在点击索引上从零到 2 个字符。错误总是向前的;也就是说,它在正确索引之前获取索引 1 到 2 个字符。在长段的开头,通常会相差 2 个字符;到最后,它通常是正确的。我的文本是属性字符串中的希腊文本,不确定这是否有所不同。
如有任何帮助,我们将不胜感激。
谢谢。
- (void)receivedTap:(UITapGestureRecognizer*)recognizer
{
CGAffineTransform transform = CGAffineTransformMake(1, 0, 0, -1, 0, self.bounds.size.height);
CGPoint point = CGPointApplyAffineTransform([recognizer locationInView:self], transform);
// Getting all CTLines
CFArrayRef lines = CTFrameGetLines(textFrame);
CFIndex countOfLines = CFArrayGetCount(lines);
int lineNumber = 0;
for ( CFIndex i = 0; i < countOfLines; i++ ) // For each CTLine
{
CTLineRef line = CFArrayGetValueAtIndex(lines, i);
CGRect lineRect = CGRectZero;
CGFloat ascent = 0, descent = 0;
// Calculating CTLine frame
CTFrameGetLineOrigins(textFrame, CFRangeMake(i, 1), &lineRect.origin);
lineRect.size.width = CTLineGetTypographicBounds(line, &ascent, &descent, NULL);
lineRect.size.width -= CTLineGetTrailingWhitespaceWidth(line);
lineRect.size.height = ascent + descent;
lineRect.origin.y -= descent;
lineRect = CGRectIntegral(lineRect);
if ( ! CGRectContainsPoint(lineRect, point) ) {
lineNumber++;
continue;
}
NSLog(@"line is %d", lineNumber);
CFIndex touchedIndex = CTLineGetStringIndexForPosition(line, point);
NSInteger touchedIndexInt = (NSInteger)touchedIndex;
NSLog(@"found it : char %d", touchedIndexInt);
break;
}
最佳答案
你试过把它放在 UITextView 中并做类似的事情吗
UITextPosition *touchPosition = [self.textView closestPositionToPoint:point];
UITextRange *touchRange = [self.textView.tokenizer rangeEnclosingPosition:touchPosition withGranularity:UITextGranularityCharacter inDirection:UITextLayoutDirectionRight];
NSLog(@"%@",[self.textView textInRange: touchRange]);
关于ios - 获取核心文本中点击字符的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637563/
menu Home Events Technical Schedule
我试图阻止触发默认 anchor 链接和 onclick 事件。 这是 HTML 代码: Google 我正在尝试使用以下 jQuery 代码阻止任何重定向的发生: $("#mylink").cli
我想在单击父 div 上的任意位置时切换我的 div,除非单击 anchor 元素。因此,例如,如果我单击示例中的第一个文本,我希望它切换,但在我的示例中的第二个文本上,我不希望它切换。 JSFidd
我在通过 jQuery 伪造 anchor 点击时遇到问题:为什么我的thickbox在我第一次点击输入按钮时出现,但第二次或第三次却没有出现? 这是我的代码: Link 当我直接点击链接时,它总是
我已经从 Mootools 切换到 jQuery,因为我认为它有更好的支持。我有这样的 HTML: Opcje Opcje Opcje Opcje Opcje Opcje Opcje JS
我是一名优秀的程序员,十分优秀!