仿SDCycleScrollView(Swift版本)
来源:互联网 发布:python 单核可以子进程 编辑:程序博客网 时间:2024/06/10 15:31
仿SDCycleScrollView(Swift版本)
废话不多说,在开发中,cycleScrollView是经常要用到的一个控件,以下是我封装的一个cycleScrollview的swift版本cycleScrollView+timer(GIT地址)
核心代码
/** * 配置轮播数据源 */ var newImageUrlStrings: [String] = imageUrlStrings if imageUrlStrings.count > 1 { newImageUrlStrings.insert(imageUrlStrings.last!, at: 0) newImageUrlStrings.append(imageUrlStrings.first!) } for imageUrlStrig in newImageUrlStrings { let tmpImageView = UIImageView.init(frame: CGRect.init(x: x, y: 0, width: mFrame.width, height: mFrame.height)) tmpImageView.tag = imageUrlStrings.index(of: imageUrlStrig)! self.mScrollView.addSubview(tmpImageView) /** * 设置数据源 */ tmpImageView.kf.setImage(with: URL.init(string: imageUrlStrig), placeholder: mPlaceholderImage, options: nil, progressBlock: { (a, b) in }, completionHandler: { (image, error, cacheType, url) in }) /** * 添加图片点击事件 */ tmpImageView.isUserInteractionEnabled = true tmpImageView.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(self.didSelectImageView(tap:)))) x+=mFrame.width } self.mPage.numberOfPages = imageUrlStrings.count self.mScrollView.contentSize = CGSize.init(width: mFrame.width * CGFloat(newImageUrlStrings.count), height: mFrame.height) if newImageUrlStrings.count > 0 { mScrollView.scrollRectToVisible(CGRect.init(origin: CGPoint.init(x: mScrollView.frame.width, y: mScrollView.frame.origin.y), size: mScrollView.frame.size), animated: false) } self.startTimer()
因为swift最新版本提供的定时器只支持10.0以上版本,为了兼容低版本系统,Demo中也同时封装了一个定时器的类(通过GCD实现的),并且使用的API和系统相近。如有错误,希望不吝指出共勉。
阅读全文
0 0
- 仿SDCycleScrollView(Swift版本)
- 仿支付宝首页体验效果(Swift版本)
- iOS-仿淘宝navigationBar双波纹(OC版本和Swift版本)
- Swift版本仿网易云音乐播放音乐动画效果
- 轮播图 SDCycleScrollView
- SDCycleScrollView轮播图
- 仿iReader 阅读器(swift)
- JokeClient-Swift 仿写学习
- swift -高仿单糖app
- AndroidWheel 省市区三级联动(高仿IOS版本)
- Qt实现的局域网通信软件(仿QQ版本)
- Swift版本之大雪纷飞
- iOS CoreData(Swift版本)
- Swift版本变化
- swift App版本更新
- Swift 3.0 版本变化
- Swift 版本历史记录
- Swift-App版本更新
- ajax异步刷新
- Maven实战(maven安装和配置【windows系统】)
- 617. Merge Two Binary Trees(二叉树的合并)
- java RandomAccessFile 类
- window.history.go(-1)返回且刷新页面
- 仿SDCycleScrollView(Swift版本)
- 应避免的11个最常见的设计误区(下)
- 51nod 1432 独木舟
- ccf认证路径解析90分运行错误
- MyBatis
- asp.net c# 异步日志通用类(4)
- 设计教育面临的最大问题
- 产品设计14招,招招有用(上)
- Java关键字final、static使用总结