可以在弹出框上应用 autoresizemask
Posted
技术标签:
【中文标题】可以在弹出框上应用 autoresizemask【英文标题】:can autoresizemask be applied on popovers 【发布时间】:2011-04-13 08:23:49 【问题描述】:再次陷入这个方向问题。我有一个搜索屏幕,当用户点击文本字段时,会在其下方显示一个弹出框,就像下拉菜单一样,但是当方向更改为 ladscape 弹出框时,会出现在左侧。
这个可以处理吗(除了管理坐标)
提前致谢
试过这段代码
- (void)willRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
if (isPopOverNeedToBeManaged)
NSLog(@"Popover need to be managed");
if (popOverSender)
NSLog(@"yes text field is there");
if (popoverController)
[popoverController dismissPopoverAnimated:NO];
(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
if (isPopOverNeedToBeManaged)
NSLog(@"Popover need to be managed");
if (popOverSender)
NSLog(@"yes text field is there");
if (popoverController)
[popoverController presentPopoverFromRect:txtDDDeliveryCenter.frame inView:subview permittedArrowDirections:0 animated:YES];
【问题讨论】:
【参考方案1】:观察任何 Apple 原生应用程序中的弹出框行为。您会看到响应设备旋转弹出框应该在旋转动画之前消失,并在它结束后再次出现在新的适当位置。所以你应该关闭你的弹出框,然后用新的坐标在新的地方弹出它。
希望对你有帮助
【讨论】:
问题是如何做到这一点,我可以使用哪些 API 来实现这一点? 您应该在旋转之前检查(在 viewControllers willRotateToInterfaceOrientation:duration:) 是否显示弹出框(弹出框中的 popoverVisible 属性),保存此值,关闭弹出框(dismissPopoverAnimated:) 并在 didRotateFromInterfaceOrientation: 方法中你的 viewController 调用 presentPopoverFromRect:inView:permittedArrowDirections:animated: 或 presentPopoverFromBarButtonItem:permittedArrowDirections:animated: 根据它在旋转之前是否可见以上是关于可以在弹出框上应用 autoresizemask的主要内容,如果未能解决你的问题,请参考以下文章