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也可以用来做轮播图
另外推荐一个自己写的弹出自定义视图的工具,支持pod 给个Star