uiview swift height xcode6

¿Cómo cambio el tamaño de UIView?



swift height (8)

Aqui tienes. Esto debería funcionar.

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)

Tengo problemas para modificar mi altura UIView en el lanzamiento.

Tengo que UIView y quiero que uno tenga el tamaño de pantalla * 70 y el otro para llenar el vacío.

esto es lo que tengo

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

y

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

No tiene ningún efecto en la aplicación durante el tiempo de ejecución. Uso el autolayout pero solo tengo restricciones de márgenes ...

¿Lo estoy haciendo todo mal?


Asignar questionFrame.frame.size.height= screenSize.height * 0.30 no reflejará nada en la vista. porque es una propiedad de solo obtener. Si desea cambiar el marco de questionFrame, puede usar el siguiente código.

questionFrame.frame = CGRect(x: 0, y: 0, width: 0, height: screenSize.height * 0.70)


Esto se puede lograr con varios métodos en Swift 3.0 Trabajado en la última versión MAYO 2019

Asigne directamente los valores de Altura y Ancho para una vista:

userView.frame.size.height = 0 userView.frame.size.width = 10

Asigne el CGRect para el marco

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

Detalles del método:

CGRect (x: punto de X, y: punto de Y, ancho: ancho de vista, altura: altura de vista)

Usando un método de extensión para CGRECT

Agregue el siguiente código de extensión en cualquier archivo rápido,

extension CGRect { init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) { self.init(x:x, y:y, width:w, height:h) } }

Use el siguiente código en cualquier lugar de su aplicación para que la vista establezca los parámetros de tamaño

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


Hola crea esto se extiende si quieres. Actualización 2015 Swift 2.0

Cree File Extends.Swift y agregue este código (agregue la base de importación donde desee cambiar la altura)

/** 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 } }

Para uso (hereda de UIView)

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


Para un tipo de barra de progreso, en Swift 4

Sigo estos pasos:

  1. Creo una salida UIView: @IBOutlet var progressBar: UIView!
  2. Luego, una propiedad para aumentar su valor de ancho después de una acción del usuario var progressBarWidth: Int = your value
  3. Luego, para el aumento / disminución del progreso progressBar.frame.size.width = CGFloat(progressBarWidth)
  4. Y finalmente en el método IBACtion agrego progressBarWidth += your value para aumentar automáticamente el ancho cada vez que el usuario toca un botón.

Puede hacer esto en Interface Builder:

1) Control-arrastre desde una vista de cuadro (por ejemplo, questionFrame) a la Vista principal, en la ventana emergente seleccione "Igual altura"

2) Luego vaya al inspector de tamaño del marco, haga clic en la restricción "Igual altura a Supervisar", configure el multiplicador en 0.7 y presione la tecla de retorno.

Verá que la restricción ha cambiado de "Altura igual a ..." a "Altura proporcional a ...".


Sé que ya hay una solución a esta pregunta, pero encontré una alternativa a este problema y tal vez podría ayudar a alguien.

Estaba teniendo problemas para configurar el marco de mi vista secundaria porque ciertos valores se referían a su posición dentro de la vista principal. Entonces, si no desea actualizar su marco cambiando todo el marco a través de CGRect, simplemente puede cambiar un valor del marco y luego actualizarlo.

// keep reference to you frames var questionView = questionFrame.frame var answerView = answerFrame.frame // update the values of the copy questionView.size.height = CGFloat(screenSize.height * 0.70) answerView.size.height = CGFloat(screenSize.height * 0.30) // set the frames to the new frames questionFrame.frame = questionView answerFrame.frame = answerView


Swift 3 y Swift 4:

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