我无法使用大小(650,400)设置内容大小。但是我甚至创建了具有相同宽度和宽度的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];
}
点击显示按钮看起来像这样
-(void)buttonView:(id)sender
{
CGSize popoversize = CGSizeMake(650, 320);
[parent setPopoverContentSize:popoversize animated:YES];
[toolbar setFrame:CGRectMake(0, popoversize.height- 90, popoversize.width, 60)];
CATransition *transition = [CATransition animation];
transition.type = kCATransitionPush;
transition.duration = 1.0f;
transition.timingFunction = UIViewAnimationCurveEaseInOut;
[self.view.layer addAnimation:transition forKey:@"transitionViewAnimation"];
}
答案 0 :(得分:2)
您要问的是什么并不是很清楚,但是对于弹出窗口,您需要确保在显示弹出窗口之前在内容视图控制器上设置popoverContentSize。通常我会在我的视图控制器的viewDidLoad方法中执行此操作,该方法将用于弹出窗口。
答案 1 :(得分:1)
来自Apple的文档:
“您指定的宽度值必须至少为320磅且不超过600磅。”
可能尝试将宽度设置为650是问题所在。
答案 2 :(得分:1)
我遇到了类似的问题,因为我无法在设备旋转期间更改弹出控制器的大小。我在answer to a similar question找到了导致我的解决方案的信息。
因为我是从Bar按钮呈现弹出窗口,所以UIKit通过在旋转期间调整弹出窗口的大小来“尝试”帮助(因为在更改为不同的设备方向后按钮的位置可能会有所不同)。即使我确切地知道在每种情况下我想要弹出窗口的大小,但它并不尊重我对setPopoverContentSize的调用。我的解决方案是在willAnimateRotationToInterfaceOrientation中关闭popover,然后在为contentSizeForViewInPopover和popoverContentSize设置适当的值后,在didRotateFromInterfaceOrientation中重新显示相同的popover。 IHTH
答案 3 :(得分:1)
考虑使用:
-(BOOL)splitViewController:(UISplitViewController *)svcontroller shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}
这将呈现纵向和横向方向的popover。
答案 4 :(得分:0)
我注意到你有一个名为popover的UIViewController应该在popoever中显示 您引用为mpopover 导航到该类以及ViewController循环的ViewDidLoad方法 确保添加以下代码
self.contentSizeForViewInPopover = CGSizeMake(400, 90); // or Any size you like
...&安培; ...