UIlabel linebreak с scrollview некорректно отображается, если он слишком длинный (iphone retina simulator) - PullRequest
0 голосов
/ 11 ноября 2011

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

Picture

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));

Edit: Эта проблема возникает при использовании симулятора Iphone Retina.

1 Ответ

1 голос
/ 11 ноября 2011

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

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

...