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