рамка позиционирования не работает после перехода на iOS 4.2 - PullRequest
0 голосов
/ 02 декабря 2010

У меня проблемы с перемещением вида:

- (void)viewDidLoad {

    CGRect newFrame = self.popUp.view.frame;
    newFrame.origin.y = self.view.bounds.size.height;
    self.popUp.view.frame = newFrame;

    [[self view] addSubview:[self.popUp view]];

    [super viewDidLoad];
}

Это должно поместить подпредставление popUp ниже текущего экрана, но оно, кажется, не перемещает его. Я почти уверен, что это работало до 4.2. Любые идеи относительно того, что может происходить? Извините за неопределенность. Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

Похоже, вы двигаетесь, поэтому вершина popUp.view находится внизу self.view.И затем, когда вы добавляете popUp.view к self.view, вы помещаете его «за пределы» self.view.Вы можете проверить это с помощью newFrame.origin.y = self.view.bounds.size.height - 100; и посмотреть, появляется ли он.

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

Если вы хотите, чтобы ваше всплывающее окно отображалось под видом, я думаю, что лучшим подходом было бы либо разместить ваше всплывающее окно внизу вашего представления:всплывающее окно в суперпредставлении self.view.В этом случае вы, вероятно, захотите обработать отображение в контроллере суперпредставления.

0 голосов
/ 02 декабря 2010

Вы пытались переместить [super viewDidLoad] в начало метода?Где вы вызываете метод суперкласса, может повлиять на состояние унаследованных переменных.

Хороший пост об этом: `[super viewDidLoad]` соглашение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...