Разница в высоте надписи отображается в iPhone 4.0 против симулятора - PullRequest
1 голос
/ 16 сентября 2011

Я использую следующий метод для получения высоты надписи, необходимой для указанного текста.

//Obtain the label height required for the text
CGFloat answerLabelHeight = [CustomCell getHeightOfLabel:answer_text ofFontSize:ANSWER_FONT_SIZE withConstraint: ANSWER_CONSTRAINT];

//Retrieve the label from cell contentview
UILabel *thisAnswerLabel = (UILabel*)[self.contentView viewWithTag:ANSWERLABEL_TAG];

//Set the frame of the label depending on the label height obtained above
[thisAnswerLabel setFrame:CGRectMake(CELL_TEXT_LEFT_MARGIN + CELL_AVATAR_WIDTH + CELL_SPACING, currentYAxisValue, CELL_ANSWER_WIDTH, answerLabelHeight)];


//Method to obtain label height
+ (CGFloat) getHeightOfLabel:(NSString *)text ofFontSize:(CGFloat)fontSize withConstraint:(CGSize)constraint
{
    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    return size.height;
}

Странно, но я замечаю, что бывают случаи, когда высота возвращаемой метки не точна, то есть все еще есть пробелы над и под текстом (см. Ниже). Кроме того, результаты, возвращаемые для устройства iPhone 4 и симулятора, отличаются

Результат на симуляторе: (Результат точный, т. Е. Никаких дополнительных отступов над и под текстом

enter image description here

Результат на iPhone 4: (Результат отличается и немного отличается, то есть дополнительные отступы видны над и под текстом

enter image description here

Может кто-нибудь посоветовать мне 1) Почему разница в результатах между устройством iphone и симулятором 2) Как удалить дополнительные отступы для сценария iphone 4?

EDIT: Обратите внимание, что дополнительное заполнение происходит только для определенных сценариев, похоже, когда последнее слово абзаца близко к правой стороне границы. В противном случае высота возвращается в порядке. если это связано с дисплеем сетчатки iphone, как я могу преодолеть это несоответствие?

1 Ответ

1 голос
/ 16 сентября 2011

@ Жен, я полагаю, вы не используете симулятор для показа ратины, в то время как в iPhone 4 отображается ратина.

Вы можете удалить дополнительный отступ, уменьшив его высоту и установив выравнивание по центру.

...