可以在弹出框上应用 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的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap:模态框上的弹出框

离子应用程序在弹出框和模式关闭后冻结或停止工作

关闭弹出框后如何调用函数?

7alert/confirm/promt

在弹出窗口上预览图像,无法正确显示

弹出框滑动,底部不跟着滑动