Swift基础之封装蒙版指导视图

相信大家都见到过,一个软件添加了新功能,会给用户使用步骤指导,所以我针对这个功能,便于使用的小demo,希望对大家有帮助。


源码中的注释比较详细,这里不再赘述,自行研究:

var imageName:String = String()//图片名称
    var imageCount:Int = Int()//图片数量
    
    //创建一个类方法,初始化
    //注意:OC方法中instancetype类型,在Swift中变成了这样:(-> 类名称!)
    //如果在方法中要使用自定义的init方法,需要在init方法前进行required修饰,然后self.init()调用 或者不加required修饰,直接 类名称.init()调用,建议使用第二种方法调用,因为如果使用的是系统的init方法,就无法添加required进行修饰了,需要重写方法,这样就比较麻烦了
    class func jhGuideView(aFrame:CGRect,aImageName:String,aImageCount:Int) -> JHGuideView!{
        return JHGuideView.init(aFrame:aFrame,aImageName:aImageName,aImageCount:aImageCount)
    }
    //而创建的init方法,进行初始化的时候,需要用super.init(frame: 必须有frame值)
    init(aFrame:CGRect,aImageName:String,aImageCount:Int) {
        super.init(frame: aFrame)
        self.imageName = aImageName
        self.imageCount = aImageCount
        self.backgroundColor = UIColor.clear
        self.createUI()
    }
    //MARK:------ 创建UI
    func createUI() {
        if imageCount >= 0 {
            for i in 0 ..< imageCount {
                let realImageName:NSString = NSString.init(format: "%@_%d", imageName,i+1)
                let image:UIImage = UIImage.imageDeviceName(imageName: realImageName)
                let imageView:UIImageView = UIImageView.init(frame: CGRect.init(x: 0, y: 0, width: Screen_Width, height: Screen_Height))
                imageView.image = image;
                imageView.isUserInteractionEnabled = true;
                imageView.tag = 1000 + i
                //添加手势
                let tapG = UITapGestureRecognizer.init(target: self, action: #selector(touchImageView(tap:)))
                imageView.addGestureRecognizer(tapG)
                
                self.addSubview(imageView)
            }
        }
    }
    //MARK:------ 手势方法
    func touchImageView(tap:UITapGestureRecognizer) {
        let tapImageView:UIImageView = tap.view as! UIImageView
        //依次移除
        tapImageView.removeFromSuperview()
        if tapImageView.tag - 1000 == 0 {
            //最后一张
            self.hideView()
        }
        
    }
    //MARK:------ 消失
    func hideView() {
        self.removeFromSuperview()
    }
    //判断是否显示过指导图
    class func isShowGuiderView() -> Bool{
        if UserDefaults.standard.object(forKey: isOpenGuide) == nil {
            UserDefaults.standard.set(100, forKey: isOpenGuide)
            UserDefaults.standard.synchronize()
            return true
        }else{
            return false
        }
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

效果图:

   


源码Demo:下载,请点star,谢谢~https://github.com/hbblzjy/SwiftGuideMengBanDemo





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbblzjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值