swift - framework - uikit ios
¿Cómo cambio el índice z o el orden de pila de UIView? (2)
Recomendaría UIView
documentation UIView
, donde se enumeran varios métodos para la manipulación del orden de las subvistas:
bringSubviewToFront(_:) sendSubviewToBack(_:) removeFromSuperview() insertSubview(_:atIndex:) insertSubview(_:aboveSubview:) insertSubview(_:belowSubview:) exchangeSubviewAtIndex(_:withSubviewAtIndex:)
En tu situación, podrías intentar:
self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.
Alternativamente, como creó myGradientView
en IB, puede cambiar la jerarquía de vistas para cambiar las vistas que aparecen en la parte superior. Aquí hay una foto para ilustrar:
Espero que ayude.
He apilado un UIView sobre un controlador existente en un esfuerzo por crear una capa de degradado. Sin embargo, cuando carga la vista, la nueva UIView (naturalmente) está encima de todo.
Código relevante:
class ViewController: UIViewController {
@IBOutlet weak var myGradientView: GradientView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
self.myGradientView.gradientWithColors(UIColor.whiteColor(), UIColor.blueColor())
}
}
He hecho algunas búsquedas y encontré una respuesta en Objective-C que explica cómo usar:
[parentView bringSubviewToFront: view];
No sé objetivo-c y soy bastante nuevo en Swift, si alguien pudiera aclarar esto, lo apreciaría.
Mi pregunta:
¿Cómo cambio el índice z o el orden de pila de un UIView en Swift?
la respuesta anterior de
bringSubviewToFront(_:) sendSubviewToBack(_:)
ha cambiado:
En Swift 3.0
view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)