Возможно ли быстрое вращение UILabel? - PullRequest
2 голосов
/ 24 января 2010

Я хочу работать только в ландшафтном режиме, и пока единственный способ получить соответствующую координатную рамку в остальной части приложения - это вращение главного окна с помощью:

CGAffineTransformMakeRotation (3,1415 / 2.0f);

, который также вращает все подпредставления.

Отлично работает, кроме случаев, когда я хочу нарисовать UILabel, частота кадров падает как сумасшедшая. Мне нужно усечение и все эти красивые вещи, которые идут с UILabel, поэтому мой вопрос, есть ли лучший способ перейти в ландшафтный режим или ускорить рисование текста. Я видел некоторые приложения, которые работают в ландшафтном режиме и все еще имеют текст, поэтому мне интересно ...

Ответы [ 3 ]

4 голосов
/ 24 января 2010

Может быть, вместо этого использовать CGAffineTransformMakeRotation(M_PI/2.0f);? Это должно создать действительно простую матрицу аффинного преобразования.

2 голосов
/ 24 января 2010

Если все, что вы хотите сделать, это работать в ландшафтном режиме, то с iPhone OS 2.1 вам не нужно применять преобразование к основному виду. См. этот ответ на этот вопрос для более подробной информации.

0 голосов
/ 10 октября 2011

Очень просто:

    myLabel.text = @"Text To Rotate";
    //myLabel is UILabel, which i want to Rotate.
    myLabel.textColor = self.xValuesColor;
    myLabel.backgroundColor = [UIColor redColor];
    myLabel.textAlignment = UITextAlignmentCenter;
    CATransform3D landscapeTransform = CATransform3DIdentity;
    landscapeTransform = CATransform3DRotate(landscapeTransform,-90, 0, 0, 1);
    // -90 is angle to rotate, you can change it according to your requirement. 
    myLabel.layer.transform = landscapeTransform;
    [self addSubview:myLabel];
    [myLabel release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...