Swift基础之封装蒙版指导视图
来源:互联网 发布:libevent源码怎么读 编辑:程序博客网 时间:2024/06/03 18:06
相信大家都见到过,一个软件添加了新功能,会给用户使用步骤指导,所以我针对这个功能,便于使用的小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 0
- Swift基础之封装蒙版指导视图
- Swift基础之封装ActionSheet控件
- Swift基础之封装一个WebViewController
- Swift基础框架的封装
- SWIFT控件之滚动视图
- swift简单学习之封装
- swift语言基础:UIView视图,CGRect,UIColor
- swift基础篇:视图控制器UIViewControler
- Swift随堂笔记之基础版
- swift基础之<二>
- swift之Button基础
- swift基础之协议
- swift 基础之UIDynamicAnimation
- Swift基础之UIButton
- Swift基础之UITextField
- swift基础之?和!
- 数据库基础 之 “视图”
- Java基础之--封装
- Keras学习之四:用RNN进行评论好恶预测
- Visual Studio中,MSBUild版本问题
- 静态导入与增强for循环
- QT背景设置
- 获取项目系统路径
- Swift基础之封装蒙版指导视图
- 【nginx-rtmp】03、常见问题(FAQ)
- Android中TextView富文本
- PHP 安装
- CryptoJS 使用MD5加密
- set_include_path详细解释
- ARM Neon基础知识(二)
- 二分查找
- shell--鸟哥私房菜(1)