? ? ? ?今天做了兩個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凑耻,因為有動畫太示,看著感覺舒服點(diǎn)。
二香浩、RandomColorGradient
? ? ? ? 點(diǎn)擊按鈕播放音樂类缤,背景是變化的漸變色,這里音樂用了你的名字的一段邻吭,好聽~~以前研究過一點(diǎn)漸變色餐弱,原理基本上是懂得,主要是每一個像素點(diǎn)的顏色梯度變化囱晴,因為像素點(diǎn)很小膏蚓,所以視覺上看著就是漸變效果,這里沒用這個方法寫畸写,畢竟那樣寫出這效果也是比較麻煩的驮瞧,這里使用的是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翅楼,因為運(yùn)行發(fā)現(xiàn)加了layer之后尉剩,button就被完全遮擋住了,所以將layer的z軸位置調(diào)低以正常顯示控件毅臊。
? ? ? ?alpha設(shè)置為小于1是為了隨機(jī)顏色理茎,這點(diǎn)從原作者那里學(xué)到了,漸變色擁有一定透明度管嬉,然后只要隨機(jī)改變view的背景顏色就可以皂林,顏色混合在一起就會生成不同的漸變色了,省了不少事蚯撩。
? ? ? ?隨機(jī)生成顏色础倍,可以將顏色用數(shù)值表示,隨機(jī)生成數(shù)值來生成隨機(jī)顏色胎挎。例如:greenValue = CGFloat(drand48())