UI阶段
UIView动画,UILbel
UIView的动画是用动画来改变视图的fram相关属性、背景颜色、透明度
func UIViewAnimation1(){
//功能:执行这个方法前视图的状态,动画的改变或者切换到闭包里面设置的最终状态
//参数1:动画时间
//参数2:闭包,设置动画结束时视图的状态
UIView.animateWithDuration(2) {
//来这儿设置视图动画的最后状态
self.subView.frame.origin.y = 50
//动画的改变视图的大小
self.subView.frame.size = CGSizeMake(50, 50)
self.subView.transform = CGAffineTransformMakeScale(0.1, 0.1)
self.subView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
//改变背景颜色
self.subView.backgroundColor = UIColor.blackColor()
//改变透明度
self.subView.alpha = 0.5
}
}
参数3:在动画完成后会自动调用这个闭包
UIView.animateWithDuration(1, animations: { self.subView.transform = CGAffineTransformMakeTranslation(0, -200)
}) { (_) -> Void in
//写动画结束 需要执行的代码
UIView.animateWithDuration(2, animations: {
UIView.animateWithDuration(1, animations: { self.subView.transform = CGAffineTransformMakeTranslation(0, -0)})})
}
func UIViewAnimation3(){
//参数2:延迟时间
//参数3:选项 repeat 动画重复执行 Autoreverse 动画自动回到开始的状态
//参数4:设置动画结束时视图状态的闭包
//参数5:整个动画过程完成后需要执行的闭包
UIView.animateWithDuration(0.1, delay: 1, options: [ .Repeat,.Autoreverse], animations: {self.subView2.transform = CGAffineTransformMakeScale(0.5, 0.5)}
, completion: nil)
UIView.animateWithDuration(0.1, delay: 1, options: [ .Repeat,.Autoreverse], animations: {self.subView2.transform = CGAffineTransformMakeTranslation(0, -200)}
, completion: nil)
}
可以重复的动画
func UIViewAnimation5(){
//参数2:延迟时间
//参数3:选项 repeat 动画重复执行 Autoreverse 动画自动回到开始的状态
//参数4:设置动画结束时视图状态的闭包
//参数5:整个动画过程完成后需要执行的闭包
UIView.animateWithDuration(0.1, delay: 1, options: [ .Repeat,.Autoreverse], animations: {self.subView3.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))}
, completion: nil)
}
弹簧动画
func UIViewAnimation4(){
//参数1:动画时间
//参数2:延迟时间
//参数3:弹簧的压力系数
//参数4:弹簧初始的加速度
//参数5:选项 repeat 动画重复执行 Autoreverse 动画自动回到开始的状态
//参数6:设置动画结束时视图的状态
//参数7:动画结束后要做的事情
//对于有圆角的视图,改变大小而不影响形状,只能通过形变去缩放,不能直接改变frame的size
UIView.animateWithDuration(2, delay: 1, usingSpringWithDamping: 0.1, initialSpringVelocity: 0, options:[.Repeat,.Autoreverse], animations: {self.subView.transform = CGAffineTransformMakeScale(0.5, 0.5)}, completion: nil)
UIView.animateWithDuration(0.1, delay: 1, options: [ .Repeat,.Autoreverse], animations: {self.subView.transform = CGAffineTransformMakeTranslation(0, -200)}
, completion: nil)
}
Layer 属性
func layerAction(){
//layer 属性是负责视图的形状()
//1.切圆角
//当圆角的值为正方形的宽的一半,就可以切一个园
self.subView.layer.cornerRadius = 100
//2.设置边框
self.subView.layer.borderWidth = 3
//设置颜色
self.subView.layer.borderColor = UIColor.yellowColor().CGColor
}
UILabel:UIview ->UIView的属性和方法
//UILabel都拥有
//===========从UIView继承下来的属性=============
//1.创建UILabel对象
let label = UILabel.init(frame: CGRectMake(50, 100, 300, 400))
//2.添加到界面上
self.view.addSubview(label)
//3.改变背景颜色
label.backgroundColor = UIColor.yellowColor()
//===========UILabel专有的属性=============
//1.text属性
//设置Label上显示的文字
label.text = "Hello,China!中国龙,你好!我来自遥远的东方沃土,带着希望和雨露,润泽苍生万物;我来自神秘的传奇古国,"
//拿到Label上当前显示的文字
print(label.text!)
//2.设置字体的颜色
label.textColor = UIColor.redColor()
//3.设置字体(默认17)
//使用系统字体,设置字体的大小
label.font = UIFont.systemFontOfSize(39)
label.font = UIFont.systemFontOfSize(35, weight: 0.5)
//使用系统的斜体,设置字体的大小
label.font = UIFont.italicSystemFontOfSize(17)
//使用系统的粗体,设置字体的大小
label.font = UIFont.boldSystemFontOfSize(17)
//获取系统所有的字体名
print(UIFont.familyNames())
//参数1:字体名
//参数2:字体的大小
label.font = UIFont.init(name: "HYZhuanShuF", size: 35)
//总结使用自己的字体的步骤:
//1.将TTF文件拖到工程中
//2.在info.plist文件中添加键值对“Fonts provided by application”,将字体添加到系统字体库中
//3.通过提供字体名的构造方法去创建字体。
//4.设置阴影的颜色
label.shadowColor = UIColor.grayColor()
//设置阴影的偏移程度
label.shadowOffset = CGSizeMake(-1 , -1)
//5.设置文本在屏幕中所处的位置
label.textAlignment = .Center
//6.设置行数
label.numberOfLines = 8
//7.自动换行
// label.numberOfLines = 0
//8.设置换行模式
//ByCharWrapping ->以字符单位换行
//ByWordWrapping ->以单词单位换行
label.lineBreakMode = .ByCharWrapping
引申,根据UILabel的文字设置大小
//需要显示在Label上的文字
let str = "Hello,China!中国龙,你好!我来自遥远的东方沃土,带着希望和雨露,润泽苍生万物;我来自神秘的传奇古国,纷纷落叶飘向大地,白雪下种子沉睡,一朵花开了又迅速枯萎,在流转的光的阴影中,星图不断变幻,海水中矗起高山,草木几百代的荣枯,总有一片片的迎风挺立,酷似它纷纷落叶飘向大地,白雪下种子沉睡,一朵花开了又迅速枯萎,在流转的光的阴影中,星图不断变幻,海水中矗起高山,草木几百代的荣枯,总有一片片的迎风挺立,酷似它"
//计算显示指定文字所需要的最小空间
//1.将Swift的字符串转换成OC的字符串
let ocstr = str as NSString
//2.计算字符串的大小
//参数1:限制显示当前字符串的最大宽度,和最大高度
//参数2:设置渲染方式 .UsesLineFragmentOrigin
//参数3:确定文字的字体大小
//NSFontAttributeName 字体对应的Key值
//NSForegroundColorAttributeName ->文字颜色对应的Key值
let strsize = ocstr.boundingRectWithSize(CGSizeMake(350, 50000), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName:UIFont.systemFontOfSize(17)], context: nil)
//3.创建Label显示文字
let label = UILabel.init(frame: CGRectMake(100, 100,strsize.width,strsize.height))
label.backgroundColor = UIColor.yellowColor()
self.view.addSubview(label)
label.text = str
label.numberOfLines = 0