繁体   English   中英

UIPopoverController没有在分配的位置显示控制器

[英]UIPopoverController is not presenting controller in assigned position

我正在尝试在单击按钮时显示一个弹出窗口。 当我点击按钮时,它会在屏幕顶部显示弹出窗口,并且背景是完全黑色的。 我已经设定好位置,并为popover赋予了硬编码的来源,但它仍在继续。

这是快照:

在此处输入图片说明

这是我正在使用的代码:

  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];

编辑我更改了我的代码并尝试了此操作:

  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];

当我创建一个非常小的自定义视图时。 现在,它在指定位置显示标签,但背景视图仍为白色。

现在我在这里想念的是什么? 有什么线索吗?

 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];

看到这个例子,您应该给内容大小如上弹出。 但是您直接声明为CGRect。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM