? ? ? ?今天做了兩個demo,寫的這些感覺對swift越來越熟悉了,感覺和oc除了用法不一樣,但是方法基本一樣,找到規(guī)律想著oc里的寫法基本用Swift也能寫出來!
一、PullToRefresh

下來刷新列表,經(jīng)常需要用到的,下拉刷新的控件用的是自帶的UIRefreshControl,使用方法如下:
refreshControl.addTarget(self, action: #selector(refreshToLoadData), for: UIControlEvents.valueChanged)
let attributes = NSMutableAttributedString.init(string: "Loading...")
attributes.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSRange(location: 0, length: 10))
refreshControl.attributedTitle = attributes
list.refreshControl = refreshControl
下拉后刷新列表,可以使用tableView.reloadData(),我用給的reoloadSection,因為有動畫,看著感覺舒服點。
二、RandomColorGradient

? ? ? ? 點擊按鈕播放音樂,背景是變化的漸變色,這里音樂用了你的名字的一段,好聽~~以前研究過一點漸變色,原理基本上是懂得,主要是每一個像素點的顏色梯度變化,因為像素點很小,所以視覺上看著就是漸變效果,這里沒用這個方法寫,畢竟那樣寫出這效果也是比較麻煩的,這里使用的是CAGradientLayer,Apple封裝好的類,只要設(shè)置好漸變的colors,locations,還有startPoint和endPoint就可以,代碼如下:
let color1 = UIColor.init(red: 255.0/255.0, green: 103.0/255.0, blue: 53.0/255.0, alpha: 0.7).cgColor
let color2 = UIColor.init(red: 88.0/255.0, green: 214.0/255.0, blue: 141.0/255.0, alpha: 0.7).cgColor
let color3 = UIColor.init(red: 0, green: 189.0/255.0, blue: 255.0/255.0, alpha: 0.7).cgColor
gradientLayer.colors = [color1,color2, color3, color2, color1]
gradientLayer.locations = [0.1, 0.3, 0.5, 0.7, 0.9]
gradientLayer.startPoint = CGPoint(x:0.0, y:0.0)
gradientLayer.endPoint = CGPoint(x:1.0, y:1.0)
gradientLayer.masksToBounds = true
gradientLayer.zPosition = -1
self.view.layer.addSublayer(gradientLayer)
? ? ? ? 這里gradientLayer.zPosition = -1,因為運行發(fā)現(xiàn)加了layer之后,button就被完全遮擋住了,所以將layer的z軸位置調(diào)低以正常顯示控件。
? ? ? ?alpha設(shè)置為小于1是為了隨機顏色,這點從原作者那里學(xué)到了,漸變色擁有一定透明度,然后只要隨機改變view的背景顏色就可以,顏色混合在一起就會生成不同的漸變色了,省了不少事。
? ? ? ?隨機生成顏色,可以將顏色用數(shù)值表示,隨機生成數(shù)值來生成隨機顏色。例如:greenValue = CGFloat(drand48())