背景:
我需要显示一个带有搜索字段的imageview(rect而非barbutton)的popover。需要从UIModalPresentationFormSheet中显示popover。这已成功实现
问题:
我面临的问题(在横向模式下)是当键盘显示时模态表单向上移动并且弹出窗口我的框架。因此弹出框保持在其原始位置(键盘显示之前)并且呈现的rect向上移动。
我应用的解决方案是从更改后的矩形中(using presentPopoverFromRect)
表示-(void)didShowKeyBoard:(NSNotification*) notif
中的弹出框,并在-(void)didhideKeyBoard:(NSNotification*) notif
中执行相同的操作。这样可以正常工作,但过渡非常快且有弹性。
那么,我怎样才能实现平稳过渡?
我尝试了什么
我试过了:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:5.0f];
[_statePopover presentPopoverFromRect:stateHandler.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO];
[UIView commitAnimations];
但它不起作用。
有人可以指导我这样做的正确方法吗?
任何帮助都非常感谢。
答案 0 :(得分:1)
这部分解决了我的问题。我用一个调度来延迟popover演示。它如下所示:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_USEC), dispatch_get_current_queue(), ^{
[_statePopover presentPopoverFromRect:statehandler.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
});
当我的键盘被解除时,这可以正常工作,但是当显示键盘时,相同的片段无法提供所需的结果。
如果有人知道为什么会这样,请发表评论。谢谢!!