2010-12-31 9 views
1

Ich habe einen View-Controller mit einer Ansicht und einer Unteransicht. Wenn die Ausrichtung des Geräts geändert wird, wird die Ansicht automatisch neu gezeichnet, die Unteransicht jedoch nicht. Wenn ich explizit [subview setNeedsDisplay] mache, wird es neu gezeichnet, aber ich habe keinen logischen Platz, um diesen Aufruf in meinen Code einzufügen. Und da ich die Ansicht nicht explizit neu zeichnen muss, scheint es kontraintuitiv zu sein, die Unteransicht neu zu zeichnen. Gibt es eine Möglichkeit, die Unteransicht automatisch neu zu zeichnen, wenn die Ansicht neu gezeichnet wird?Was ist der richtige Weg, um eine Unteransicht neu zu zeichnen, wenn sich die Ausrichtung des Geräts ändert?

Antwort

6

Ich fand, dass das folgende funktioniert. Wenn es nicht der beste Weg ist, jemanden bitte geben Sie einen besseren Weg, es zu tun.

Fügen Sie die folgenden in der subview.m-Datei, in der initWithFrame: Methode

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

Auch wenn das funktioniert und schön in meinen Code passt, sehe ich nicht, warum die subview diese Eigenschaften festlegen muss aber die Ansicht doesn t.

0

Swift 3/iOS10 Syntax:

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