У меня есть несколько функций, которые я использую для рисования другого типа текста.Например:
- (CGFloat)drawInformation:(CGContextRef)c withLeftCol:(NSArray *)leftCol rightcol:(NSArray *)rightCol atPoint:(CGPoint)point withLineSpacing:(CGFloat)lineSpacing {
CGContextSetStrokeColorWithColor(c, [UIColor blackColor].CGColor);
CGFloat fontSize = 16.0;
UIFont *pFont = [UIFont fontWithName:@"Arial-BoldMT" size:fontSize];
CGFloat yOffset = 0;
for (NSString *leftColStr in leftCol) {
[leftColStr drawAtPoint:CGPointMake(point.x, point.y + yOffset) withFont:pFont];
yOffset += lineSpacing;
}
yOffset = 0;
for (NSString *rightColStr in rightCol) {
[rightColStr drawAtPoint:CGPointMake(rtStart, point.y + yOffset) withFont:pFont];
yOffset += lineSpacing;
}
return [leftCol count] > [rightCol count] ? [leftCol count] * (fontSize + lineSpacing) : [rightCol count] * (fontSize + lineSpacing);
}
Я не включил весь метод, но это суть.Я в основном беру массив текста и рисую их в два столбца.Я хочу вернуть высоту области, чтобы я знал, насколько она велика, и могу нарисовать следующий фрагмент текста под ним.
Одна вещь, которую я обнаружил, - даже если я установил fontSize = 16
, если я наберу [@"text" sizeWithFont:pFont]
, я на самом деле получаю 18 или что-то еще.Как видите, я также добавляю lineSpacing
.Поэтому меня интересует, возвращаю ли я правильную сумму в этом случае, а также, должен ли я использовать fontSize или [@"text" sizeWithFont:pFont].height
в моем выражении возврата.В своем текущем состоянии, когда мне нужно нарисовать мой следующий блок текста в новой точке, он довольно смещен, примерно на 100 точек, и я не уверен, почему существует такое расхождение.Спасибо!