有没有办法在UITextView中找到ypos,或/并找到当前标记处于活动状态的行?
的问候。
答案 0 :(得分:2)
你需要做一些计算 通过
找到光标位置NSRange cursorPosition = [tf selectedRange];
光标位置的子串使用此子字符串来计算字符串的宽度
sizeWithFont:constrainedToSize:
然后将它除以你的TextView宽度的宽度..它会给你光标所在的行...它在逻辑上似乎是正确的......没有尝试过...尝试它让我知道是否它是否有效..
答案 1 :(得分:1)
类似的东西:
- (int) getCurrentLine: (UITextView *) textView{
int pos = textView.selectedRange.location;
NSString *str =textView.text;
NSCharacterSet *charset = [NSCharacterSet whitespaceAndNewlineCharacterSet];
int num = pos;
for (; num< str.length; num++){
unichar c = [str characterAtIndex:num];
if ([charset characterIsMember:c]) break;
}
str = [str substringToIndex:num];
CGSize tallerSize = CGSizeMake(textView.frame.size.width - 16, 999999);
CGSize lc1 = [@"Yyg" sizeWithFont: textView.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
CGSize lc = [str sizeWithFont: textView.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
lc.height = lc.height / lc1.height;
return lc.height;
}