У меня есть datePicker, который я хочу анимировать внутри и снаружи снизу, изменив его верхнее ограничение на верх супер-вид.Animate view, изменяя константу константы
У меня установлен IBOutlet и на viewDidLoad. Мне разрешено изменять константу ограничения.
override func viewDidLoad() {
super.viewDidLoad()
self.datePickerTopConstraint.constant = self.view.frame.size.height // I can set this to whatever and it will persist
}
Однако через IBAction я пытаюсь установить константу на другое значение, и не сохраняется.
@IBAction func showDatePicker() {
UIView.animateWithDuration(0.25, animations: {
() -> Void in
self.datePickerTopConstraint.constant = self.view.frame.size.height - self.datePicker.frame.size.height // Doesn't persist
self.view.layoutIfNeeded()
})
}
кажется, что я могу изменить это и есть Datepicker появляются в представлении (в viewDidLoad) и анимировать его из поля зрения, но не имеют Datepicker появляются вне поля зрения (как в приведенном выше примере) и анимировать внутри вида. Что я пропустил?
EDIT
Устанавливая верхний ограничение постоянной высоты в Super View I (по какой-то причине я не понимаю) также установить высоту выбора даты до 0, который в свою очередь, делает вычитание в showDatePicker бессмысленного ,
You're right, в то время как 'self.datePicker' действительно существует, его высота равна нулю, если я устанавливаю его« верхнюю константу ограничения »на ее высоту родительского представления. Это похоже на то, что я делаю это. Спасибо, что указали мне в правильном направлении! :) – MdaG
'po self.datePicker.frame' в' showDatePicker' дает '(origin = (x = 16, y = 667), size = (width = 343, height = 0))' – MdaG