J'ai cherché beaucoup de snippets sur le net et je n'ai toujours pas trouvé la réponse à mon problème. Ma question est que j'ai un scrollView(SV) et je veux ajouter un bouton à l'intérieur du scrollView(SV) programmatiquement avec la même largeur et hauteur de son superview qui est scrollView(SV) de sorte que lorsque l'utilisateur tourne le périphérique le bouton aura le même cadre du scrollView(SV). comment faire le NSLayout/NSLayoutConstraint ? merci
Réponse
Trop de publicités?
Jonny
Points
2898
J'avais besoin de couvrir complètement la vue d'ensemble. Les autres ne le faisaient pas lors des changements d'orientation. J'en ai donc écrit un nouveau qui le fait - en utilisant un multiplicateur de taille arbitraire de 20. N'hésitez pas à le modifier selon vos besoins. Notez également que cette version rend en fait la vue secondaire beaucoup plus grande que la vue principale, ce qui peut être différent des besoins.
extension UIView {
func coverSuperview() {
guard let superview = self.superview else {
assert(false, "Error! `superview` was nil – call `addSubview(_ view: UIView)` before calling `\(#function)` to fix this.")
return
}
self.translatesAutoresizingMaskIntoConstraints = false
let multiplier = CGFloat(20.0)
NSLayoutConstraint.activate([
self.heightAnchor.constraint(equalTo: superview.heightAnchor, multiplier: multiplier),
self.widthAnchor.constraint(equalTo: superview.widthAnchor, multiplier: multiplier),
self.centerXAnchor.constraint(equalTo: superview.centerXAnchor),
self.centerYAnchor.constraint(equalTo: superview.centerYAnchor),
])
}
}
- Réponses précédentes
- Plus de réponses