如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框
Posted
技术标签:
【中文标题】如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框【英文标题】:How to use UIPopoverBackgroundView to present a transparent popover in iOS 6 【发布时间】:2013-03-30 09:48:07 【问题描述】:我在 ios 6 中使用UIPopoverController
来呈现UITableViewController
。
我正在尝试使此弹出框半透明,以便能够显示覆盖的视图。除此之外,我想要一个带有默认箭头等的标准弹出框控制器。
从 iOS 5 开始,可以使用 UIPopoverBackgroundView 定义自定义弹出背景视图。 但是,我正在努力正确设置背景。我用来设置背景视图的代码如下所示。我想仅设置 alpha 值,并将其他属性设置为其默认值。
此外,我需要如何配置显示在弹出框内的表格视图控制器,以使其视图(及其所有子视图,文本除外)也具有透明度。
谢谢!
configPopover.popoverBackgroundViewClass = [TransparentPopoverBackGroundView class];
TransparentPopoverBackGroundView.m:
#import "TransparentPopoverBackGroundView.h"
@implementation TransparentPopoverBackGroundView
@synthesize arrowOffset;
@synthesize arrowDirection;
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
self.alpha = 0.4;
return self;
+ (UIEdgeInsets)contentViewInsets
return UIEdgeInsetsMake(5, 5, 5, 5);
+ (CGFloat)arrowHeight
return 10.0;
+ (CGFloat)arrowBase
return 10.0;
【问题讨论】:
【参考方案1】:试试这个link
设置
#define DEFAULT_TINT_COLOR [UIColor blackColor];
到
#define DEFAULT_TINT_COLOR [UIColor clearColor];
【讨论】:
你想隐藏你的tableview还是将背景颜色设置为透明。 用于隐藏:yourpopovercontroller.tableview.alpha=0;设置背景:yourpopovercontroller.tableview.backgroundcolor=[UIColor clearcolor]; 抱歉含糊不清,我希望弹出窗口中显示的表格视图的背景为半透明(alpha = 0.5)。 很遗憾DDPoverBackgroundView
的源代码不支持 ARC。我无法使用[UIColor clearColor]
直接访问我的tableView。还有其他想法吗? :-)以上是关于如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何在 iOS 7 中使用具有 iOS 6 风格的 UIButtons?
如何在 Xcode 5 中使用不同的图像 iOS 6 和 iOS 7 [关闭]
如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框
在 + UIDocumentInteractionController 中打开:如何在 SDK iOS 6 中过滤选项(不推荐使用 canPerformActions)