如何在 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)

如何在 Mac OSX 10.6.4 Snow leopard 中使用 iOS 5 安装 xcode 4.2

如何在应用程序中启用 iOS 6.0 全景相机?