【问题标题】:Change preferred content size of PopOverViewController on fly即时更改 PopOver ViewController 的首选内容大小
【发布时间】:2015-03-22 15:39:15
【问题描述】:

我正在尝试从 childViewController 内部更改 UIPopOverController 的首选内容大小。

首先我以这种方式呈现 PopOverViewController

 DateViewController *dateView = [[DatePickerViewController alloc] initWithNibName:@"DateViewController" bundle:nil];

        UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:dateView];


        m_tableCell = (NotesCell *)[m_tableView cellForRowAtIndexPath:indexPath];


            popViewController = [[UIPopoverController alloc] initWithContentViewController:navController];
            popViewController.backgroundColor = [[AppManager instance].themeManager navigationBarColor];
            popViewController.delegate = self;


                //the rectangle here is the frame of the object that presents the popover,
                //in this case, the UIButton…


                CGRect popRect = CGRectMake(m_tableCell.customView.frame.origin.x,
                                            m_tableCell.customView.frame.origin.y,
                                            m_tableCell.customView.frame.size.width,
                                            m_tableCell.customView.frame.size.height);
                                [popViewController presentPopoverFromRect:popRect
                                                   inView:m_tableCell
                                 permittedArrowDirections:UIPopoverArrowDirectionRight
                                                 animated:YES];

所以在我的 childViewController 中,即(DateViewController),我有一个按钮,当切换时会调用一个函数

    - (void)toggleButton
    {
       if(small)
       {
               self.presentingViewController.presentedViewController.preferredContentSize = CGSizeMake(320,485);
       }
       else
       {
             self.presentingViewController.presentedViewController.preferredContentSize = CGSizeMake(320,320);
       }
}

这工作正常,但我们知道 UIPopOverViewController 有箭头,所以当我调整 popOverView 的大小时,箭头也会上下动画,这是我不想要的。我无法在图片中显示此内容,请原谅。

需要帮助

兰吉特。

【问题讨论】:

    标签: ios uipopovercontroller preferredsize


    【解决方案1】:

    首先,您发布的代码不起作用,因为在 else 语句中您分配 CGSizeMake 在构造它时只给出一个值。

    其次,您可以通过指定popoverArrowDirection property 来定义允许该箭头的方向

    【讨论】:

    • 嘿我的打字错误,现在请检查我上面的问题。嘿,我已经在一个显示为 popOver 的 VC 中,从这里如何访问 popOverArrowDirection 属性。
    • 第一个注释只是一个旁注,对你来说重要的是我提到的箭头方向:)
    • 当我显示 popOverVC 时,我已经给出了箭头方向。现在我在显示为 popOver 的 VC 中。现在如何管理这个。他们还有其他方式来改变preferredContentSize吗?
    • 管理什么设置箭头方向?设置我提到的属性
    • 您好,我想,我的问题不太清楚,所以我做了修改,希望您现在明白,我需要什么。
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多