ios swift banner轮播图

2018-09-24  本文已影响0人  你我他_1180

我们要封装一个无限轮播图 也可以直接去GitHub上下载封装完的第三方地址:https://github.com/GitHubCFer01/BannerView

打开连接下载第三方 导入工程,工程自动添加了oc桥梁
在桥梁的类里导入头文件

#import "BannerView.h"

我们可以把轮播图写进表格,这样方便往下写分组表格

class uiViewController: UIViewController ,UITableViewDataSource ,UITableViewDelegate {
    
   var array:NSMutableArray!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        array = NSMutableArray.init(array: ["1","2"])
        let tableV = UITableView.init(frame: self.view.frame)
        tableV.delegate = self
        tableV.dataSource = self
        
        self.view.addSubview(tableV)
        
        tableV.register(UINib.init(nibName: "MyTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
        tableV.register(BannerTableViewCell.classForCoder(), forCellReuseIdentifier: "banner")
        tableV.register(UINib.init(nibName: "QvKuaiTableViewCell", bundle: nil), forCellReuseIdentifier: "quKuai")
        tableV.register(UINib.init(nibName: "ImageTableViewCell", bundle: nil), forCellReuseIdentifier: "image")
        tableV.register(UINib.init(nibName: "DccTableViewCell", bundle: nil), forCellReuseIdentifier: "dcc")
        
        print(array)
        
        // Do any additional setup after loading the view.
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        
        return 5
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        if section == 0 || section == 1 || section == 3 || section == 4{
            
            return 1
        }else{
            
            return 3
        }
        
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        if indexPath.section == 0 {
            
            let cell = tableView.dequeueReusableCell(withIdentifier: "banner")
            
            return cell!
        }else if indexPath.section == 1{
            
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
            
            return cell!
        }else if indexPath.section == 2{
            
            let cell = tableView.dequeueReusableCell(withIdentifier: "quKuai")
            
            return cell!
        }else if indexPath.section == 3{
            let cell = tableView.dequeueReusableCell(withIdentifier: "image")
            
            return cell!
        }else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "dcc")
            
            return cell!
        }
        
        return UITableViewCell()
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        
        return 300
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        
        if indexPath.section == 0 {
            
            return 300
        }else{
            
            return 80;
        }
    }

    

创建分组的cell
在xib里面拖拽你需要的控件

创建继承于TableViewCell的类

func bannerV() -> Void {
        
        let array = NSMutableArray.init(array: ["1","2"])
        let banner = BannerView(frame: CGRect.init(x: 0, y: 0, width: self.contentView.bounds.size.width, height: 300), addImageArray: array)
        
        self.contentView.addSubview(banner!)
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        
        super.init(style: UITableViewCellStyle.subtitle, reuseIdentifier: reuseIdentifier)
        
        self.contentView.backgroundColor = UIColor.red
        self.bannerV()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    

重写父类方法

上一篇下一篇

猜你喜欢

热点阅读