Я пытаюсь создать PDF внутри своего приложения. Чтобы нарисовать строку, я вычисляю размер ограничивающего прямоугольника для этой строки, используя boundingRectWithSize, а затем рисую строку внутри прямоугольника этого размера.NSString drawInRect: withAttributes: не рисует текст с большей шириной, чем rect в iOS 7.0.3
Код отлично работает в iOS 7.1 и выше, но в iOS 7.0.3 текст вообще не рисуется, если его ширина больше ширины прямоугольника (400). Согласно документам Apple, строка должна быть завернута в новую строку и обрезана, если она не может соответствовать прямоугольнику, что происходит в iOS 7.1 и выше, но не в iOS 7.0.3.
Вот мой фрагмент кода:
-(void)drawText:(NSString *)string
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor);
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
myFontForContentBold, NSFontAttributeName,
[NSNumber numberWithFloat:1.0], NSBaselineOffsetAttributeName, nil];
CGRect textRect = [string boundingRectWithSize:CGSizeMake(400, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:attributes context:nil]
textRect = CGRectMake(130, 80, 400, textRect.size.height);
[string drawInRect:textRect withAttributes:attrsDictionary];
}
Я не могу понять, что может быть проблема. Пожалуйста помоги.
ваш код может иметь ошибку в строке, которая начинается с 'CGRect TextRect = ...' – wcd
Я отредактировал мой ответ. Посмотрите, работает ли он – wcd