首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS -How将UIPopoverBackgroundView类中的方法连接到不同类中的PopoverController?

iOS -How将UIPopoverBackgroundView类中的方法连接到不同类中的PopoverController?
EN

Stack Overflow用户
提问于 2017-06-22 06:14:48
回答 1查看 1.8K关注 0票数 1

我正在使用一个PopoverController,我想摆脱背景阴影。苹果说subClass UIPopoverBackgroundView和返回falseoverride class var wantsDefaultContentAppearance: Bool { get }

https://developer.apple.com/documentation/uikit/uipopoverbackgroundview/1619357-wantsdefaultcontentappearance

我将其子类化,并将bool设置为false,但阴影仍然显示。如何将这个子类连接到我在LogoutClass中的Actionsheet中使用的LogoutClass?

UIPopoverBackgroundView子类:

代码语言:javascript
复制
class PopoverBackgroundView: UIPopoverBackgroundView {

override class var wantsDefaultContentAppearance: Bool {
        get {
            return false
        }
    }
}

LogoutController:

代码语言:javascript
复制
class LogoutController:UIViewController{

fileprivate func logOff(){

let actionSheet = UIAlertController(title: nil, message: "Logging out?", preferredStyle: .actionSheet)

 let logout = UIAlertAction(title: "Log Out", style: .default){
            (action) in
//bla bla bla
}

actionSheet.addAction(logout)

if let popoverController = actionSheet.popoverPresentationController{
            popoverController.sourceView = view
            guard let window = UIApplication.shared.keyWindow else { return }
            window.backgroundColor = .clear
            popoverController.sourceRect = CGRect(x:window.bounds.midX, y:window.bounds.midY, width:0, height:0)
            popoverController.permittedArrowDirections = []

        }
present(actionSheet, animated: true, completion: nil)
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 06:49:03

您必须设置popoverBackgroundViewClass实例的UIPopoverPresentationController属性,如下所示:

目标C :

代码语言:javascript
复制
popoverController.popoverBackgroundViewClass = [PopoverBackgroundView class];

Swift

代码语言:javascript
复制
popoverController?.popoverBackgroundViewClass = PopoverBackgroundView.self

根据苹果的文档:

此属性的默认值为零,这将导致表示控制器使用默认的popover外观。将此属性设置为0以外的值将导致表示控制器使用指定的类绘制popover的背景内容。您指定的类必须是UIPopoverBackgroundView的子类。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44691501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档