Код ниже является примером того, как я использую CGRect
для рисования некоторого текста при создании PDF-документа. Мне нужно, чтобы вычислить точный размер CGRect
втягивается с comment1 так, что те, для comment2, comment3 и т.д. все начинают в нужном месте на странице.Точный размер CGRect с использованием CGSize ... sizeWithAttributes
Переменная currentLine отслеживает, где находится конец CGRect
. Он отлично подходит для коротких комментариев, но не длинных комментариев, где последующие комментарии перекрываются. Размер шрифта и шрифта правильный.
textRect = CGRectMake(60, currentLine, 650, 300);
myString = self.comments1.text;
[myString drawInRect:textRect withAttributes:_textAttributesNotBold ];
CGSize contentSize = [myString sizeWithAttributes: @{NSFontAttributeName: [UIFont fontWithName:@"Arial" size:12]}];
currentLine = currentLine + contentSize.height;
Интересно, если проблема с CGRectMake
использованием 650 ширины. Это, по-видимому, не учитывается в CGSize
.... sizeWithAttributes
. Какая ширина делает CGSize
.... sizeWithAttributes
предположить при расчете contentSize.height?
Или есть лучший способ сделать это?
Я думаю, что вы делаете это назад ... почему вы не рассчитать размер содержимого первого ... затем создайте прямоугольник с этим размером ... затем нарисуйте строку в * that * rect? И затем ... почему вы не передаете те же аргументы для 'withAttributes:' методу вычисления размера, как вы относитесь к методу фактического рисования? – nhgrif
Это имеет смысл, но проблема остается прежней. contentSize.height рассчитывается из sizeWithAttributes: но не учитывает ширину CGRectMake. Я не понимаю, как он вычисляет высоту, не зная ширины рамки. – RGriffiths
Возможный дубликат [iOS 7 sizeWithAttributes: замена для sizeWithFont: constrainedToSize] (http://stackoverflow.com/questions/19145078/ios-7-sizewithattributes-replacement-for-sizewithfontconstrainedtosize) – nhgrif