您的位置:首页 > 其它

collectionview写的新手引导

2016-12-20 14:13 405 查看
swift 使用collectionview写的新手引导

直接上代码:

import UIKit

let leadImageNameArr = ["start1","start2","start3","start4"]
class TTLeadNewUserViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {

var collectionView : UICollectionView!

override func viewDidLoad() {
super.viewDidLoad()
setUpCollectionView()

}

fileprivate func setUpCollectionView()  {
let layout = UICollectionViewFlowLayout()
layout.itemSize = CGSize.init(width: MainWide, height: MainHeight)
layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 0
layout.scrollDirection = .horizontal
collectionView = UICollectionView.init(frame: self.view.bounds, collectionViewLayout: layout)
collectionView.isPagingEnabled = true
collectionView.register(LeadImageCollectionCell.self, forCellWithReuseIdentifier: "LeadImageCollectionCell")
collectionView.dataSource = self
collectionView.delegate = self
collectionView.showsHorizontalScrollIndicator = false
self.view.addSubview(collectionView)
}

func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return leadImageNameArr.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "LeadImageCollectionCell", for: indexPath) as! LeadImageCollectionCell
cell.setImage(leadImageNameArr[indexPath.row])

if indexPath.row == leadImageNameArr.count - 1 {
cell.setButtonOnImage()
}
return cell
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/

}

class LeadImageCollectionCell: UICollectionViewCell {

fileprivate var imageView : UIImageView!
fileprivate var button : UIButton?
override init(frame: CGRect) {
super.init(frame: frame)
setUpImage(frame)
}

fileprivate func setUpImage(_ frame:CGRect) {
imageView = UIImageView()
self.contentView.addSubview(imageView)
}
override func layoutSubviews() {
imageView.frame = CGRect.init(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
}

open func setImage(_ imageName : String){
removeButton()
imageView.image = UIImage.init(named: imageName)
}
func removeButton() {
if button != nil {
button?.removeFromSuperview()
}
}
func setButtonOnImage()  {
let btn = UIButton.init(type: .custom)
btn.frame = CGRect.init(x: MainWide*0.25, y: MainHeight*0.8, width: MainWide*0.5, height: MainHeight*0.05)
btn.setTitleColor(UIColor.collorWirhRGB(r: 227, g: 62, b: 42), for: .normal)
btn.setTitle("立即体验", for: .normal)
btn.layer.cornerRadius = 10
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.layer.borderColor = UIColor.orange.cgColor
btn.addTarget(self, action: #selector(goHomeVc), for: UIControlEvents.touchUpInside)
button = btn
self.contentView.addSubview(btn)
}
@objc func goHomeVc(){
//跳转到homeVc
//TTPopTool.gohomeVc()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}


轮播图也可以使用collectionview写的。。

权当自己做个笔记了。。

swift 版本 没有什么动画,这个collectionview也可以用来做轮播图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: