我有一个 UITextView 用来显示文本。在旁边,我有一个 UITableView 用来显示行号。尝试将行号与文本行对齐时会出现问题。这是问题的截图:https ://www.dropbox.com/s/7sjqm4nrsqm6srh/Screen%20Shot%202012-10-11%20at%209.16.58%20PM.png 例如第7行应该下移因为它不在新行的开头。我认为问题必须处理文本换行时的间距,但我不确定。
因此,对于 UITableView,我创建的单元格数量与文本行数相同。然后使用以下方法拉伸单元格,使其高度与每行文本相同:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
int i = indexPath.row;
if (i == 0) {
return 10;
}
UIFont *font = _codeView.font;
NSArray *strings = [_codeView.text componentsSeparatedByString:@"\n"];
NSString *tempString = [strings objectAtIndex:i-1];
if (([strings objectAtIndex:i-1] == @"\n") | ([[strings objectAtIndex:i-1] length] == 0) ) {
tempString = @"hi";
}
CGSize stringSize = [tempString sizeWithFont:font constrainedToSize:CGSizeMake(_codeView.bounds.size.width, 9999) lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = stringSize.height;
return height;
}
_codeView 是我用来显示代码的 UITextView。显示行号的 UITableView 在顶部也有一个空白单元格,因此我可以将第一个单元格与行号与第一行文本对齐。
我尝试了多种使用间距的方法,但似乎都没有解决问题。任何帮助将不胜感激。