/**
新特性轮播
使用
let newfeature = LYBNewFeatureScroll.init(frame: CGRect.init(x: 0, y: 0, width: WIDTH, height: HEIGHT))
newfeature.images = ["bankBlue","bankGreen","bankRed","appstart"]
UIApplication.shared.keyWindow!.addSubview(newfeature)
*/
import UIKit
class LYBNewFeatureScroll: UIView ,UIScrollViewDelegate{
//属性观察器,相当于重写属性的set方法didset方法中scrollImages是新值,oldValue是旧值(固定写法)
//-用到的时候才开始加载
var images:[String]=["bankBlue"]{
willSet(scrollImagess) {
print("新的值\(String(describing: images))")
}
didSet {
print("新的值 \(String(describing: images))")
print("旧的值 \(String(describing: oldValue)) ")
initviews()//有数据了创建轮播
}
}
// var images:[String] = ["bankRed","bankBlue","bankGreen","appstart"]
var headerScroll:UIScrollView?
var pagectr:UIPageControl?
//定义一个闭包,有参数没返回值----按钮点击时调用
var scrollClickBlock:(Int)->()={ (Int)in return }
override init(frame: CGRect) {
super.init(frame: frame)
initviews()
}
func initviews(){
if(headerScroll==nil){
headerScroll=UIScrollView.init(frame: CGRect(x: 0, y: 0, width:Int(WIDTH) , height:Int(HEIGHT)))
}
headerScroll?.showsHorizontalScrollIndicator=false
for i in 1...images.count {
let imageV:UIImageView=UIImageView.init(frame: CGRect(x:(i-1)*Int(WIDTH), y:0, width:Int(WIDTH) , height:Int(HEIGHT)))
imageV.image=UIImage.init(named: images[i-1])
headerScroll!.addSubview(imageV)
}
headerScroll!.contentSize=CGSize(width: WIDTH*CGFloat(images.count)+10, height: 0)
addSubview(headerScroll!)
headerScroll?.isPagingEnabled=true//分页
/**
pageCcontrol
*/
pagectr=UIPageControl.init(frame: CGRect.init(x: 50, y: Int(HEIGHT-30), width: Int(WIDTH-100), height: 30))
pagectr?.numberOfPages=images.count; pagectr?.currentPageIndicatorTintColor=UIColor.red
pagectr?.pageIndicatorTintColor=UIColor.gray
pagectr?.currentPage=0
self.addSubview(pagectr!)
//按钮
let enterbtn:UIButton=UIButton.init(frame: CGRect.init(x: WIDTH-100, y: 50, width: 80, height: 50))
enterbtn.addTarget(self, action: #selector(imageVClick), for: UIControl.Event.touchUpInside)
enterbtn.setTitle("快速体验", for: UIControl.State.normal)
enterbtn.setTitleColor(UIColor.gray, for: UIControl.State.normal)
self.addSubview(enterbtn)
}
//轮播图点击事件
@objc func imageVClick(sender:UIButton){
//tag是从102开始,
print("\(sender.tag)")
self.scrollClickBlock(sender.tag)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
iOS/swift新特性轮播
猜你喜欢
转载自blog.csdn.net/u011146511/article/details/86081996
今日推荐
周排行