Swift学习:第四天

       今天做了两个demo,写的这些感觉对swift越来越熟悉了,感觉和oc除了用法不一样,但是方法基本一样,找到规律想着oc里的写法基本用Swift也能写出来!

一、PullToRefresh


Swift学习:第四天_第1张图片

下来刷新列表,经常需要用到的,下拉刷新的控件用的是自带的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


Swift学习:第四天_第2张图片

        点击按钮播放音乐,背景是变化的渐变色,这里音乐用了你的名字的一段,好听~~以前研究过一点渐变色,原理基本上是懂得,主要是每一个像素点的颜色梯度变化,因为像素点很小,所以视觉上看着就是渐变效果,这里没用这个方法写,毕竟那样写出这效果也是比较麻烦的,这里使用的是CAGradientLayer,Apple封装好的类,只要设置好渐变的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,因为运行发现加了layer之后,button就被完全遮挡住了,所以将layer的z轴位置调低以正常显示控件。

       alpha设置为小于1是为了随机颜色,这点从原作者那里学到了,渐变色拥有一定透明度,然后只要随机改变view的背景颜色就可以,颜色混合在一起就会生成不同的渐变色了,省了不少事。

       随机生成颜色,可以将颜色用数值表示,随机生成数值来生成随机颜色。例如:greenValue = CGFloat(drand48())

你可能感兴趣的:(Swift学习:第四天)