Разрыв строки UIlabel с просмотром прокрутки некорректно отображается, если он слишком длинный (имитатор сетчатки iphone)

У меня есть UIlabel, использующий приведенный ниже код, я не знаю, может быть, он слишком длинный или нет. но когда он прокручивается, uilabel получает такой результат. Как решить проблему? есть ли ограничения при использовании uilabel?

Изображение

CGSize maximumLabelSize = CGSizeMake(100,9999);
CGSize expectedLabelSize = [summaryBlogParsed sizeWithFont: contentSummaryLabel.font 
                                         constrainedToSize:maximumLabelSize 
                                             lineBreakMode: contentSummaryLabel.lineBreakMode]; 

//adjust the label the the new height.
CGRect newFrame = contentSummaryLabel.frame;
newFrame.size.height = expectedLabelSize.height;
contentSummaryLabel.frame = newFrame;
contentSummaryLabel.numberOfLines = 0;
contentSummaryLabel.text = summaryBlogParsed;

[contentSummaryLabel sizeToFit];
contentScrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width*2 + CGRectGetMaxY(contentSummaryLabel.frame));

Изменить: эта проблема возникает, когда я использую симулятор Iphone Retina.


person edric_s    schedule 11.11.2011    source источник


Ответы (1)


Похоже, ярлыки накладываются друг на друга. Вы можете попробовать установить их backgroundColour на [UIColor clearColor] и их свойство opaque на NO, чтобы убедиться, что это действительно так. Если это так, то вам нужно будет проверить код настройки рамки.

Если все это одна метка, вам, вероятно, не нужна одна метка с таким количеством строк, но вы можете попробовать вызвать setNeedsDisplay для принудительной перерисовки.

person jbat100    schedule 11.11.2011
comment
моя проблема возникает только в симуляторе iPhone Retina (еще не пробовал на реальном устройстве). Если я использую симулятор iphone без сетчатки, все в порядке. Я также пробовал использовать прозрачный цвет и непрозрачный до НЕТ, но проблема все еще есть. Если использовать чистый цвет, он станет пустым (белый, без рисунка). Куда мне нужно поставить setNeedsDisplay? - person edric_s; 14.11.2011
comment
может быть, в делегате scrollviewdidscroll это одна метка для всего? Если это так, я думаю, вам следует использовать UITextView или рисовать текст в основной графике, если вам нужны другие шрифты. - person jbat100; 14.11.2011
comment
11 ноября (дата) и сводка (под меткой даты) - разные метки. Мне разные шрифты не нужны. Я не хочу использовать UITextView, потому что это подкласс UiScrollView, я реализовал uitextview ранее, но часть текста просто обрезана, поэтому я выбираю UILabel. Я вызываю setNeedsdisplay из своего ярлыка, но он не работает, и это делает мое приложение тормозит при прокрутке. - person edric_s; 14.11.2011