Я пытаюсь получить UIAnimationCurve клавиатуры, если она существует. Код, я использую ниже:Кривая анимации клавиатуры как Int
if let kbCurve = userInfo[UIKeyboardAnimationCurveUserInfoKey] as? Int{
animateCurve = UIViewAnimationCurve.
}
Однако animateCurve, будучи UIViewAnimationCurve, не может быть преобразован из Int. Как мне получить кривую таким образом?
Если я рассматривать их как числа, не UIViewAnimationCurve перечислений, приведенные ниже ошибки при попытке анимации:
//Animated done button with keyboard
origDoneFrame = btnDone.frame
btnDone.hidden = false
UIView.animateWithDuration(
animateDuration,
delay: Numbers.ANIMATE_DELAY,
options: nil,
animations: {
UIView.setAnimationCurve(animateCurve)
self.btnDone.frame = CGRectMake(self.btnDone.frame.origin.x + kbHeight, self.btnDone.frame.origin.y, self.btnDone.frame.size.width, self.btnDone.frame.size.height)
return Void()
},
completion: {finished in
return Void()
}
)
Есть ли способ, чтобы установить кривую, используя Int?
Покушение ИНТ кривая:
UIView.animateWithDuration(
animateDuration,
delay: Numbers.ANIMATE_DELAY,
options: UIViewAnimationOptions(animateCurve << 16),
animations: {
self.btnDone.frame = CGRectMake(self.btnDone.frame.origin.x + kbHeight, self.btnDone.frame.origin.y, self.btnDone.frame.size.width, self.btnDone.frame.size.height)
return Void()
},
completion: {finished in
return Void()
}
)
Но компилировать ошибка возникает из-за UIViewAnimationOptions не является правильным типом. Если я запускаю назначение UIViewAnimationOptions на свой собственный, я получаю ошибку компилятора «Не удалось найти перегрузку для« init », которая принимает предоставленные аргументы».
Вы пробовали использовать 'as? UIViewAnimationCurve' вместо этого? –
@IanMacDonald Это не компилируется. Ошибка - это то, что не доходит до его фактической проблемы (как я заметил, часто бывает с XCode, но 7 не соответствует перечислению (см. Ответ ниже) – steventnorris