Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ipad 设置PopoverContentSize时出现问题_Ipad_Uipopovercontroller - Fatal编程技术网

Ipad 设置PopoverContentSize时出现问题

Ipad 设置PopoverContentSize时出现问题,ipad,uipopovercontroller,Ipad,Uipopovercontroller,我无法用size(650400)设置contentsize,但即使我创建的popoverController的宽度和高度与创建的popoverController相同 不知道什么是担心? 点击回车键,显示如下所示 - (IBAction)setButtonTapped:(id)sender { popover *mpopover = [[popover alloc] init]; UINavigationController *NavController

我无法用size(650400)设置contentsize,但即使我创建的popoverController的宽度和高度与创建的popoverController相同

不知道什么是担心? 点击回车键,显示如下所示

- (IBAction)setButtonTapped:(id)sender
{
     popover *mpopover      =   [[popover alloc] init];

    UINavigationController  *NavController      =   [[UINavigationController alloc] initWithRootViewController:mpopover];

    //NavController.navigationBar.backgroundColor = [UIColor darkGrayColor];
    mPickerPopover  = [[[UIPopoverController alloc] initWithContentViewController:NavController] retain];

    CGSize popoversize      =   CGSizeMake(400, 90);

    [mpopover setparent:mPickerPopover];

    [mpopover setToolBarFrame:popoversize];

    mPickerPopover.popoverContentSize   = popoversize;

    [mPickerPopover presentPopoverFromRect:CGRectMake([sender frame].origin.x, [sender frame].origin.y, 20, 20) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

    [mpopover release];
}

点击“显示”按钮时,显示如下所示


不太清楚您在问什么,但是对于popover,您需要确保在显示popover之前在content view控制器上设置PopoOverContentSize。通常我会在弹出窗口中使用的视图控制器的viewDidLoad方法中执行此操作。

来自苹果的文档:

“指定的宽度值必须至少为320点,不超过600点。”


可能是试图将宽度设置为650的问题。

我遇到了一个类似的问题,在设备旋转期间,我无法更改popover控制器的大小。我在一份报告中找到了导致我的解决方案的信息

因为我是通过一个条形按钮展示popover,UIKit“试图”通过在旋转过程中调整popover的大小来提供帮助(因为按钮的位置在更改为不同的设备方向后可能会有所不同)。尽管我清楚地知道在任何情况下我希望popover的大小,但它并不尊重我对setPopoverContentSize的调用。我的解决方案是取消WillAnimateRotationInterfaceOrientation中的popover,然后在为contentSizeForViewInPopover和popoverContentSize设置适当的值后,在didRotateFromInterfaceOrientation中重新显示相同的popover。IHTH

考虑使用:

-(BOOL)splitViewController:(UISplitViewController *)svcontroller shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation 
{
    return NO;
}

这将以纵向和横向显示popover。

我注意到您有一个名为popover的UIViewController,它应该显示在popover内部 您已将其引用为mpopover 导航到该类,并在ViewController循环的ViewDidLoad方法中 请确保添加以下代码

self.contentSizeForViewInPopover = CGSizeMake(400, 90); // or Any size you like

…&…

我会发布您的代码,它可能会帮助您获得答案。初始化popover并不重要,它工作正常。问题是在popover出现后将contentsize设置为size(650400)。我注意到,在popover之前显示后,更改其内容大小会出现问题,您应该能够只设置大小,它将更新,但情况似乎并非总是如此。我解决这个问题的方法是在popover上再次调用presentPopoverFromRect,然后更新为新的大小。
self.contentSizeForViewInPopover = CGSizeMake(400, 90); // or Any size you like