登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

灵活的轮播容器RinedPages

[复制链接]
来自: DingGer 分类: iOS精品源码 上传时间: 2016-11-1 16:39:35

项目介绍:

有两个主要的自定义视图: PagesCarousel 和 ImagePageControl, 可以完全独立地使用这两个视图.

RinedPages 是对以上两个视图的包装.

Objective-C版本:RPRingedPages
Swift版本: RingedPages

图片描述

图片描述

图片描述

图片描述

用法

假设在一个UIViewController里

    lazy var pages: RingedPages = {
        let screenWidth = UIScreen.main.bounds.size.width
        let pagesFrame = CGRect(x: 0, y: 100, width: screenWidth, height: screenWidth * 0.4)
        let pages = RingedPages(frame: pagesFrame)
        let height = pagesFrame.size.height - pages.pageControlMarginBottom - pages.pageControlMarginTop - pages.pageControlHeight
        pages.carousel.mainPageSize = CGSize(width: height * 0.8, height: height)
        pages.carousel.pageScale = 0.6
        pages.dataSource = self
        pages.delegate = self
        return pages
    }()
    
    lazy var dataSource: [String] = {
        var array = [String]()
        let s = "ABCDEFG"
        for i in 0..<s.characters.count {
            array.append(String(s[i]))
        }
        return array
    }()
        
    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(pages)
        pages.reloadData()
    }
    func numberOfItems(in ringedPages: RingedPages) -> Int {
        return dataSource.count
    }
    func ringedPages(_ pages: RingedPages, viewForItemAt index: Int) -> UIView {
        var label: UILabel?
        if let view = pages.dequeueReusablePage() {
            if view is UILabel {
                label = view as? UILabel
            }
        }
        if label == nil {
            label = UILabel()
            label?.font = UIFont.systemFont(ofSize: 50)
            label?.textAlignment = .center
            label?.textColor = UIColor.white
            label?.layer.backgroundColor = UIColor.black.cgColor
            label?.layer.cornerRadius = 5
        }
        label?.text = dataSource[index]
        return label!
    }
    func didSelectCurrentPage(in pages: RingedPages) {
        print("pages selected, the current index is \(pages.currentIndex)")
    }
    func ringedPages(_ pages: RingedPages, didScrollTo index: Int) {
        print("Did scrolled to index: \(index)")
    }

code4app

相关源码推荐:

我来说两句
*滑动验证:
所有评论(277)
AlonMessi 2016-11-2 11:25:38
感谢分享,code4app有你更精彩
回复
李世铿 2016-11-2 12:08:08
强烈支持楼主ing……
回复
DingGer 2016-11-2 15:47:38
李世铿 发表于 2016-11-2 12:08
强烈支持楼主ing……

在这里写了一个详细介绍的帖子,有兴趣可以看看:http://www.swifthumb.com/thread-15159-1-1.html
回复
DingGer 2016-11-2 15:56:58
AlonMessi 发表于 2016-11-2 11:25
感谢分享,code4app有你更精彩

多谢配上动图~
回复
李世铿 2016-11-2 16:34:03
楼主用心了,内容非常精彩。
回复
code4app热心网友 2016-11-2 17:32:09
强烈支持楼主ing……
回复
code4app热心网友 2016-11-2 17:32:24
楼主用心了,内容非常精彩。
回复
code4app热心网友 2016-11-2 17:32:28
很给力,Code4App有你更精彩!
回复
code4app热心网友 2016-11-2 17:32:51
强烈支持楼主ing……
回复
提取码: r5iv 下载次数:281 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
3278 3 281
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表