Как изменить положение элемента на экране после поворота iPhone - PullRequest
0 голосов
/ 16 июля 2010

У меня есть UILabel, который мне нужно сдвинуть вверх примерно на 50 пикселей при запуске приложения (потому что оно начинается в портретной ориентации, а я создал его в альбомной ориентации), а затем еще раз при каждом возврате в портретную.Прямо сейчас я использую CGRect на основе текущего кадра.Проблема в том, что, когда я пытаюсь повернуть телефон, рамка использует значения портрета и размещает метку как можно дальше.Я попытался использовать пару других методов, основанных на CGRect, и хотя они держали метку на правой оси, она была смещена повсюду.В то же время я делаю это, я также изменяю размер шрифта, поэтому я думаю, что это может что-то повлиять.

Код, который я использовал:

//In ViewDidLoad
CGRect defBox = self.seperator.frame;

//On Rotation to Portriate
CGRect newBox = self.seperator.frame;
  newBox.origin.y += 50;
  self.seperator.frame = newBox;

//On Rotation to Landscape
self.seperator.frame = defBox;

1 Ответ

0 голосов
/ 16 июля 2010

Используйте self.separator.bounds, а не self.separator.frame и сделайте это в willAnimateRotationToInterfaceOrientation: или didRotateFromInterfaceOrientation:.

...