О проблеме вращения устройства с помощью MTLabel - PullRequest
0 голосов
/ 25 ноября 2011

Я должен использовать MTLabel Class для межстрочного интервала UILabel.

(пример кода: https://github.com/Tuszy/MTLabel)

Но некоторые проблемы существуют.

Я делаю приложение для iPad. Это приложение может вращаться - пейзаж или портрет.

Я выставляю объекты UILabel и MTLable без IB.

При изменении ориентации устройства ширина текста также изменяется.

Этот результат не тот, который я хочу.

Мой код:

#import "MTLabel.h"

.

- (void)viewDidLoad
{
    [super viewDidLoad];

     MTLabel *TitleFont = [[MTLabel alloc] initWithFrame:CGRectMake(255, 60, 270, 60)];

    [TitleFont setFont:[UIFont fontWithName:@"Arial" size:30.0]];

    TitleFont.backgroundColor = [UIColor greenColor];
    TitleFont.text = @"Happy! - 1";
    TitleFont.autoresizingMask = UIViewAutoresizingFlexibleTopMargin& UIViewAutoresizingFlexibleLeftMargin&UIViewAutoresizingFlexibleRightMargin;

    TitleFont.autoresizingMask= UIViewAutoresizingFlexibleWidth;

    [self.view addSubview:TitleFont];

    //----------------------

    UILabel *TitleFont2 = [[UILabel alloc] initWithFrame:CGRectMake(255, 120, 270, 60)];

    [TitleFont2 setFont:[UIFont fontWithName:@"Arial" size:30.0]];

    TitleFont2.backgroundColor = [UIColor orangeColor];
    TitleFont2.text = @"Happy! - 2";
    TitleFont2.autoresizingMask = UIViewAutoresizingFlexibleTopMargin& UIViewAutoresizingFlexibleLeftMargin&UIViewAutoresizingFlexibleRightMargin;

    TitleFont2.autoresizingMask= UIViewAutoresizingFlexibleWidth;

    [self.view addSubview:TitleFont2];



}

Результат: 1) портретное изображение:

enter image description here

2) пейзажное изображение: enter image description here

Если я использую класс UILabel, нет проблем! Но мне нужен класс MTLabel для межстрочного интервала UILabel.

Пожалуйста, помогите мне ... Спасибо.

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

попробуйте это:

[TitleFont setContentMode:UIViewContentModeRedraw];
0 голосов
/ 09 января 2013
[TitleFont setNeedsDisplay]

попробуй это, у меня работает.и обязательно нужно отключить setAutoresizesSubviews:<NO>

0 голосов
/ 02 марта 2012

Вам нужно будет пнуть MTLabel с помощью setNeedsDisplay, чтобы правильно перерисовать себя в новом размере. Возможно в didRotateFromOrientation.

...