Mam UIButton
wewnątrz UIView
, my ma ograniczenia, które ustawiam w scenorysie. Teraz chcę ustawić środek UIButton
w centrum UIView
. Jak to zrobić programowo?Ustaw programowo programowo suwaka - SWIFT
Odpowiedz
Takie podejście polega na użyciu opcji NSLayoutConstraint, w której self.cenBut to numer IBoutletu dla przycisku.
func setupConstraints() {
let centerX = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
let centerY = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
let height = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 22)
self.cenBut.translatesAutoresizingMaskIntoConstraints = false
self.view.addConstraints([centerX, centerY, height])
}
W viewDidLoad()
self.view.removeConstraints(self.view.constraints)
self.setupConstraints()
Spróbuj .center
nieruchomości jak
myButton.center = self.view.center
Można również określić x
i y
Jeśli potrzebujesz.
myButton.center.x = self.view.center.x // for horizontal
myButton.center.y = self.view.center.y // for vertical
Byłbym
yourButton.setCenter(self.view.center);
Należy jednak pamiętać, że jeśli programowo ustawić ramkę widoku, swoje ograniczenia układ może nie działać zgodnie z oczekiwaniami.
ponieważ używasz ograniczeń, nie będzie w stanie ustawić centrum więc trzeba użyć, aby ustawić ograniczenia centrum, a także:
let centerYCon = NSLayoutConstraint(item: labelMessage,
attribute: .CenterY,
relatedBy: .Equal,
toItem: contentView,
attribute: .CenterY,
multiplier: 1.0,
constant: 0.0);
contentView.addConstraint(centerYCon);
let centerXCon = NSLayoutConstraint(item: labelMessage,
attribute: .CenterX,
relatedBy: .Equal,
toItem: contentView,
attribute: .CenterX,
multiplier: 1.0,
constant: 0.0);
contentView.addConstraint(centerXCon);
Zakładam, że wiesz, co „programowo "oznacza z ograniczeniami autolayout. Jeśli naprawdę używasz autolayout, musisz ustawić właściwości swojego przycisku, aby setTranslatesAutoresizingMaskIntoConstraints na false.
dzięki, w jaki sposób ustawić setTranslatesAutoresizingMaskIntoConstraints fałsz? –
Próbowałem już tego, ale nadal daje mi błąd –
jaki jest błąd? – Loxx
- 1. Ustaw szerokość widoku programowo
- 2. Ustaw programowo konwerter MongoDb
- 3. Ustaw styl TextBlock programowo
- 4. Ustaw kolor scrim programowo
- 5. Swift programowo ustawić segues
- 6. Watchkit: Ustaw globalnie zabarwienie programowo
- 7. Ustaw identyfikator sklepu magento programowo
- 8. Ustaw programowo datę/czas Androida.
- 9. Programowo programowo ustaw kolor i styl obramowania w arkuszu kalkulacyjnym
- 10. Swift: Jak programowo kliknąć przycisk?
- 11. Program Swift dodaje ograniczenie programowo
- 12. Tworzenie UITableView programowo w Swift
- 13. Utwórz programowo NSWindow w Swift
- 14. Programowo Screenshot | Swift 3, macOS
- 15. UINavigationBar - Ustaw programowo? iPhone SDK 4
- 16. Ustaw widoczność w menu programowo Android
- 17. programowo ustaw edycję tekstu w systemie Android?
- 18. Ustaw programowo szerokość układu dziecka w ANDROID?
- 19. Android - Ustaw program Layout_Gravity programowo dla LinearLayout
- 20. Android: Ustaw programowo minimalną wysokość widoku
- 21. Ustaw tytuł programu UIPopover View Programowo
- 22. Ustaw android: showAsAction = "ifRoom | withText" programowo
- 23. Programowo ustaw wybraną wartość dijit Wybierz widżet
- 24. Ustaw margines proporcjonalnego marginesu obliczeniowego programowo
- 25. Ustaw kolumn_kolumn i layout_row w GridLayout programowo
- 26. Czy istnieje sposób programowo programowo LaunchScreen
- 27. Jak otworzyć programowo programowo
- 28. Programowo programowo blokuje autolayout
- 29. Jak ustawić programowo programowo?
Próbowałem go również ale to daje mi błąd, w każdym razie dzięki za pomoc! –