2014-11-03 16 views
36

Ich habe Probleme beim Ändern meiner UIView-Höhe beim Start.Wie ändere ich die UIView-Größe?

Ich muss UIView und ich möchte eine Bildschirmgröße * 70 und die andere, um die Lücke zu füllen.

hier ist das, was ich

@IBOutlet weak var questionFrame: UIView! 
@IBOutlet weak var answerFrame: UIView! 
let screenSize:CGRect = UIScreen.mainScreen().bounds 

und

questionFrame.frame.size.height = screenSize.height * 0.70 
answerFrame.frame.size.height = screenSize.height * 0.30 

Es haben keine Auswirkung auf die App während der Laufzeit. Ich benutze automatische Layout, aber ich habe nur Margen Einschränkungen ...

Mache ich alles falsch?

+2

questionFrame.frame CGRectMake = (0, 0, self.view.frame.width, self.view.frame.height * 0,7) answerFrame.frame = (0, 0,7 * self.view.frame.height Selbst .view.frame.width, self.view.frame.height * 0.3) Ist so etwas, wonach Sie suchen? – User4

Antwort

38

Hier gehen Sie. das sollte funktionieren.

questionFrame.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height * 0.7) 

answerFrame.frame = CGRectMake(0 , self.view.frame.height * 0.7, self.view.frame.width, self.view.frame.height * 0.3) 
+1

Probieren Sie es einfach auf xcode 7.3. Damit CGRectMake() wirksam wird, muss die UIView (meine Ansicht ist eigentlich eine Unterklasse von UIView) View-> Mode auf "Redraw" oder "Scale to Fit" eingestellt sein, und die CGRectMake() muss in sein Meine Unterklasse 'drawRect() -Methode. Andernfalls werden die Größendefinitionen im Storyboard wirksam. – rockhammer

+0

es ist 'xy Breite height' zur gleichen Zeit, es ist besser zu nutzen' userView.frame.size.height = 10 userView.frame.size.width = 10' – user25

18

Hallo erstellen Sie diese erweitert, wenn Sie möchten. -Update 2015 Swift 2,0

Datei erstellen Extends.Swift und hinzufügen diesen Code (addieren Import Stiftung wo Sie Höhe ändern möchten)

/** 
Get Set x Position 

- parameter x: CGFloat 
by DaRk-_-D0G 
*/ 
var x:CGFloat { 
    get { 
     return self.frame.origin.x 
    } 
    set { 
     self.frame.origin.x = newValue 
    } 
} 
/** 
Get Set y Position 

- parameter y: CGFloat 
by DaRk-_-D0G 
*/ 
var y:CGFloat { 
    get { 
     return self.frame.origin.y 
    } 
    set { 
     self.frame.origin.y = newValue 
    } 
} 
/** 
Get Set Height 

- parameter height: CGFloat 
by DaRk-_-D0G 
*/ 
var height:CGFloat { 
    get { 
     return self.frame.size.height 
    } 
    set { 
     self.frame.size.height = newValue 
    } 
} 
/** 
Get Set Width 

- parameter width: CGFloat 
by DaRk-_-D0G 
*/ 
var width:CGFloat { 
    get { 
     return self.frame.size.width 
    } 
    set { 
     self.frame.size.width = newValue 
    } 
} 

Zum Gebrauch (erbt von UIView)

inheritsOfUIView.height = 100 
button.height = 100 
print(view.height) 
+0

Es ist nicht möglich, die Breite zu setzen und so weiter, ohne ein Initialisierung ist nur eine Get-Eigenschaft! – BilalReffas

15

Swift 3 Swift und 4:

myView.frame = CGRect(x: 0, y: 0, width: 0, height: 0) 
20

Dies kann in verschiedenen Verfahren in Swift 3 erreicht werden. 0 Arbeitete auf Neueste Version August - 2017

direkt die Höhe & Breite Werte für eine Ansicht zuweisen:

userView.frame.size.height = 0 

userView.frame.size.width = 10 

Weisen Sie die CGRect für die

Rahmen
userView.frame = CGRect(x:0, y: 0, width:0, height:0) 

Methode Details:

CGRect (x: Punkt X, Y: Punkt Y, Breite: Breite der Ansicht, Höhe: Height of View)

eine Erweiterungsmethode für CGRect Verwendung

in folgenden Dateisuffix in jeder schnellen Datei,

extension CGRect { 

    init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) { 

     self.init(x:x, y:y, width:w, height:h) 
    } 
} 

Verwenden Sie den folgenden Code an beliebiger Stelle in Ihrer Anwendung für die Ansicht, die Größe einstellen Parameter

userView.frame = CGRect(1, 1, 20, 45) 
0

Sie können diese Builder in-Schnittstelle tun:

1) Strg-Taste von einem Rahmenansicht (z.B. questionFrame) zur Hauptansicht, wählen Sie im Pop-up "Gleiche Höhen".

2) an Größe Inspektor des Rahmens gehen Klicken Sie dann auf Bearbeiten „Equal Höhe Super“ -Beschränkung, stellen Sie den Multiplikator auf 0,7 und drücken die Eingabetaste.

Sie werden feststellen, dass Zwang sehen wird von „Equal Höhe ...“ auf „Proportional Höhe ...“.