[英]UIPopoverController is not presenting controller in assigned position
I am trying to present a popover on clicking a button. 我正在尝试在单击按钮时显示一个弹出窗口。 When I tap on button, it shows popover on top of the screen and background is completely black.
当我点击按钮时,它会在屏幕顶部显示弹出窗口,并且背景是完全黑色的。 I have set the position and gave hard coded origin to popover but still it is going on top.
我已经设定好位置,并为popover赋予了硬编码的来源,但它仍在继续。
Here is the snapshot: 这是快照:
Here is the code I am using: 这是我正在使用的代码:
UIPopoverController *popOverController = [[UIPopoverController alloc]
initWithContentViewController:myViewController];
CGRect frame = CGRectMake(20, 30, 100, 50);
popOverController.popoverLayoutMargins = UIEdgeInsetsMake(0, frame.origin.x, 0, 0);
popOverController.delegate = self;
[popOverController setBackgroundColor:[UIColor clearColor]];
[popOverController presentPopoverFromRect:frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
EDIT I have changed my code and tried this: 编辑我更改了我的代码并尝试了此操作:
UIView *callOut = [[UIView alloc] initWithFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, 100, 50)];
callOut.backgroundColor = [UIColor whiteColor];
UILabel *callOutLable = [[UILabel alloc] initWithFrame:CGRectMake(callOut.frame.origin.x-5, callOut.frame.origin.y-5, 80, 40)];
[callOutLable setText:@"Callout"];
[callOut addSubview:callOutLable];
UIViewController *controller = [[UIViewController alloc] init];
controller.view = callOut;
UIPopoverController *popOverController = [[UIPopoverController alloc]
initWithContentViewController:controller];
popOverController.delegate = self;
CGRect frame = callOut.frame;
frame.size.height = 100;
frame.size.width = 100;
popOverController.popoverContentSize = CGSizeMake(100.0, 50.0);
[popOverController setBackgroundColor:[UIColor blueColor]];
[popOverController presentPopoverFromRect:frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
As I am creating a custom view which is really small. 当我创建一个非常小的自定义视图时。 Now it shows the label on assigned position but still the background view is white.
现在,它在指定位置显示标签,但背景视图仍为白色。
Now what I am missing here? 现在我在这里想念的是什么? Any clue?
有什么线索吗?
TestViewController *testViewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
testViewController.delegate = self;
self.userDataPopover = [[UIPopoverController alloc] initWithContentViewController:testViewController];
self.userDataPopover.popoverContentSize = CGSizeMake(320.0, 400.0);
[self.userDataPopover presentPopoverFromRect:[(UIButton *)sender frame]
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
See this example, you should give content size to pop over as above. 看到这个例子,您应该给内容大小如上弹出。 But you declared directly as CGRect.
但是您直接声明为CGRect。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.