如题,进来都有分
解决方案 »
- 数据存储、读取与删除
- 如何缩短运算时间?从内存的角度
- 这段代码怎么编啊,我编不出来总有错,求详细指导
- 制作以iphone为客户端的sns游戏
- json数据中含中文,解析老是一个空值,求高手教育
- app开发完了,也装到越狱的iphone 3gs上了,0755属性也勾选了,开始一点图标,程序闪一下就没了。
- UIButton 编译错误
- print print_r echo 区别
- 如何解决Xcode6无法自动适配
- gcdasyncsocket-server-receive-data-only-first-time
- 高分求教关于HTTP异步请求的问题?请教各位了!!!!!!!!!!!!!
- 【XCode无法启动】新手问题,恳请指导
没测试,仅供参考
- (int)getCursorPointY:(UITextView *)curtextView
{
CGPoint cursorPoint;
int Len = curtextView.selectedRange.location;
NSString *stringToCursor = [curtextView.text substringToIndex:Len];
NSArray *partStrArr = [stringToCursor componentsSeparatedByString:@"\n"];
int row = [partStrArr count];
CGSize fontsize = [@"我" sizeWithFont:[curtextView font]];
for (NSString *partStr in partStrArr)
{
CGSize partStrSize = [partStr sizeWithFont:[curtextView font] constrainedToSize:curtextView.contentSize lineBreakMode:UILineBreakModeCharacterWrap];
NSLog(@"partStrSize.width = %f,partStrSize.height = %f",partStrSize.width,partStrSize.height);
int rowG = partStrSize.height/fontsize.height;
if (rowG >1) {
rowG -=1;
row += rowG;
}
}
cursorPoint.y = (row -1)*fontsize.height;
return (int)(cursorPoint.y);
}以上这段代码在4.3里可以准确定位,但是在5.1里每次定位都会产生误差,并且误差是累积的。
UITextRange *startTextRange = [textview characterRangeAtPoint:CGPointZero];
CGRect caretRect = [textview caretRectForPosition:startTextRange.end];
CGFloat topMargin = CGRectGetMinY(caretRect);
CGFloat lineHeight = CGRectGetHeight(caretRect);
caretRect = [textview caretRectForPosition:textview.selectedTextRange.end];
CGFloat caretTop = CGRectGetMinY(caretRect);
NSInteger lineIndex = (caretTop - topMargin) / lineHeight;
2. 用sizeWithFont可以算出行高
3。 两者相除
用selectedRange如何得出高度啊?只能得出光标在字符中的位置,并不是坐标