2016-03-23 11 views
0

Ich ging durch viele Threads hier und versuchte zwei am meisten empfohlenen Lösungen. Innen ViewDidLoad() Methode:Swift - Einstellung UIViews Größe basierend auf Größe Bildschirm

self.darkBackgroundWithButtons.frame = CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height * 0.254) 

oder

self.darkBackgroundWithButtons.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height * 0.254) 

Auch in meinem Drehbuch stelle ich mit niedriger Priorität der Höhenbeschränkung Ansicht (Wenn ich Höhe im Storyboard nicht gesetzt haben, Xcode würde sich über mehrdeutiges Layout beschweren)

Aber keine dieser obigen Codezeilen macht irgendetwas mit darkBackgroundWithButtons, es bleibt die gleiche Höhe für jede Gerätegröße

+0

, wenn Sie mit automatischen Layout Sie den Rahmen in 'viewwilllayoutsubviews' setzen soll oder' viewDidAppear' Methode des View-Controllers – HardikDG

+0

Sie müssen die Höhe einzustellen durch Ändern der "Konstante" der Höhenbeschränkung, die Sie ihm gegeben haben. Den Rahmen direkt zu ändern, funktioniert nicht, wenn Sie das automatische Layout verwenden – dan

+0

@dan könnten Sie einige weitere Details angeben, was genau ich tun soll? – DCDC

Antwort

1

Dies ist wahrscheinlich das Problem:

In Interface Builder setzen Sie Constrains auf Ihre Schaltfläche, und daher ändert es nicht seine Höhe, wenn Sie versuchen, den Rahmen zu aktualisieren. Tun Sie dies stattdessen:

Verbinden Sie zuerst Ihre Constrain von Interface Builder mit Ihrem Viewcontroller, wie Sie es normalerweise mit einer Schaltfläche tun würden.

Dann diesen Code verwenden, um die constrain zu ändern:

var index = self.darkBackgroundWihButtons.constraints.indexOf("your constrain name")! 
self.darkBackgroundWithButtons.constraints[index].constant = 0.2 // or whatever number you want 
Verwandte Themen