在我的Ipad应用程序中,我使用了一个弹出框,但我无法使其透明。 popover里面有一个tableview;我的代码是:
UIViewController* popoverContent = [[UIViewController alloc] init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(600, 800, 100, 100)];
popoverView.backgroundColor = [UIColor greenColor];
popoverContent.view = zoneViewController.view;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
[self.popoverController presentPopoverFromRect:CGRectMake(1200, -200, 50, 375) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:TRUE];
[[[popoverController contentViewController] view] setAlpha:0.25f];
我只能使桌面视图透明,但是popover仍然是黑色......为什么?
答案 0 :(得分:3)
我花了几个小时尝试此网站上列出的每个解决方案,以便透明地处理包含GROUPED UIPopoverController
的{{1}} - 其中没有一个对我有效:
popover中有一个黑色根视图,其alpha值为1.0,无论您对子视图执行什么操作(或者如果您将其粘贴在superview中),透明度都不起作用。所以,我爬上了视图层次结构(通过反复试验),直到我到达那个被诅咒的黑色视图并明确设置了ITS alpha。成功!在弹出窗口可见之后,我必须添加的是一行代码:
UITableView
N.B。
1}当Apple更新self.popoverController.contentViewController.view.superview.superview.superview.alpha = 0.5;
时,此解决方案可能会停止工作,因此请自行承担风险!
答案 1 :(得分:0)
[[[popoverController contentViewController] view] setAlpha:0.25f];
这会修改zoneViewController视图的透明度,该视图将嵌套在Popover中。但是,目前无法自定义Popover本身的外观。您可以控制弹出窗口的大小和箭头方向,但不能控制边框颜色或边框透明度。
如果你真的想要一个透明的Popover框架,你必须自己编写。
答案 2 :(得分:0)
从iOS 5开始,您可以设置自定义UIPopoverBackgroundView。查看Customizing the UIPopoverController view background and border color
上的讨论答案 3 :(得分:0)
默认情况下,popover是透明的。如果将子视图放入“弹出”视图,则必须使子视图“backgroundColor
透明。”
因此,在您的情况下,您需要将tableView的backgroundColor
属性设置为[UIColor clearColor]
,并且还需要使tableView单元格透明。
不要忘记让你的细胞透明!