Как правильно перерисовать подпредставление при изменении ориентации устройства? - PullRequest
1 голос
/ 31 декабря 2010

У меня есть контроллер представления с представлением и одним подпредставлением. Когда ориентация устройства меняет представление, автоматически перерисовывается, а подпредставление - нет. Если я явно делаю [subview setNeedsDisplay], он перерисовывается, но у меня нет логического места, чтобы поместить этот вызов в мой код. И, поскольку мне не нужно явно указывать представление для перерисовки, кажется нелогичным указывать подпредставлению перерисовывать. Есть ли способ сделать автоматическое перерисовывание подпредставления, когда перерисовывается представление?

Ответы [ 2 ]

6 голосов
/ 31 декабря 2010

Я обнаружил, что работает следующее. Если это не лучший подход, пожалуйста, дайте лучший способ сделать это.

Включить следующее в файл subview.m, в метод initWithFrame:

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.contentMode = UIViewContentModeRedraw;

Несмотря на то, что это работает и хорошо вписывается в мой код, я не понимаю, почему подпредставлению нужны эти свойства, а представлению - нет.

0 голосов
/ 24 августа 2017

Синтаксис Swift 3 / iOS10:

    self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.contentMode = .redraw
...