我正在尝试获取UITextView中每个\n
字符的y位置,这样我就可以在UITextView旁边对齐行号以获得准确的行号。我想做的是获取\n
每次出现的Y坐标数组。
目前,我可以获取当前单词的CGSize,但我不太确定如何调整它以获得特定单词每次出现的Y坐标。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSRange aRange = self.editorText.selectedRange;
if(range.location<self.editorText.text.length)
{
NSString * firstHalfString = [self.editorText.text substringToIndex:range.location];
NSString *temp = @"s";
CGSize s1 = [temp sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT) // - 40 For cell padding
lineBreakMode:UILineBreakModeWordWrap]; // enter you textview font size
CGSize s = [firstHalfString sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT) // - 40 For cell padding
lineBreakMode:UILineBreakModeWordWrap]; // enter you textview font size
//Here is the frame of your word in text view.
NSLog(@"xcoordinate=%f, ycoordinate =%f, width=%f,height=%f",s.width,s.height,s1.width,s1.height);
CGRect rectforword = CGRectMake(s.width, s.height, s1.width, s1.height);
// rectforword is rect of yourword
}
else
{
// Do what ever you want to do
}
return YES;
}
我不确定的主要部分是以每次出现的方式检索其坐标。
有办法做到这一点吗?或者是否有更简单的方法来实现行号?
答案 0 :(得分:1)
自定义解析你的NSString并将#)附加到每行的开头一个选项吗?
这是一个非常简单的字符串解析和操作来实现,但它还有一个额外的好处,就是不必关心yCoordinates和其他基于布局的杂乱参数。