2016-05-19 4 views

Antwort

1

Ich glaube, Sie nutzen diese :)

override func drawRect(rect : CGRect) { 
     print(rect) 
    } 

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) { 
     print("hi") 
     self.setNeedsDisplay() 
} 

Draw rect wenn self.setNeedsDisplay genannt wird aufgerufen wird machen können, und Sie traitCollectionDidChange capture es und Kraft außer Kraft setzen können die Ansicht selbst Layout :)

EDIT

einfach realisiert werden Sie Objective-c

- (void)drawRect:(CGRect)rect { 
    NSLog(@"%@",NSStringFromCGSize(rect.size)); 
} 

-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { 
    [self setNeedsDisplay]; 
} 
+0

Danke, aber Rahmen noch nicht geändert verwenden:/ – gran33

+0

@ gran33: Sie sicher, dass Ihre Ansicht Rahmen verändert ???? Wenn sich Ihr Frame ändert, erhalten Sie nur den geänderten Frame-Wert in drawRect oder Sie können ihn dort manuell ändern :) Wie wenn Sie eine View mit autolayoutConstraint haben, die an vier Seiten von viewCotroller bindet, sehen Sie, dass drawRect immer mit aktualisierten Frames aufgerufen wird :) Bin ich etwas fehlt –

+0

Vielleicht 'flex' unterstützt das nicht? – gran33