我有一個固定在我的主UIViewController的視圖(self.view)底部的文本字段,當用戶點擊它時,這個函數被調用(通過UIKeyboardWillShowNotification),這將改變高度 - 它只是出現在iOS動畫主UIViewController的視圖高度
-(void)keyboardWillShow: (NSNotification*) notification {
NSDictionary* info = [notification userInfo];
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
CGFloat textFieldHeight = activeField.frame.size.height;
CGPoint textFieldOrigin = activeField.frame.origin;
textFieldOrigin.y += textFieldHeight;
CGRect visibleRect = self.view.frame;
visibleRect.size.height -= keyboardSize.height;
if (!CGRectContainsPoint(visibleRect, textFieldOrigin)) {
CGRect r = self.view.frame;
r.size.height -= keyboardSize.height;
[UIView animateWithDuration:1.0
animations:^{
self.view.frame = r;
}];
}
}
它會調整的self.view.frame很好,所以它是所有被調用和運行,但由於某些原因拒絕了第二動畫吧:self.view.frame的立即放置。
我需要做什麼才能讓這種高度變化動畫?
您使用的自動佈局? – 2014-09-23 13:53:37
我這麼認爲。如果這就是你的意思,我將textfield固定在UIViewController視圖的底部,左側和右側? – 2014-09-23 14:18:08