#UI阶段 - UILabel,UIView动画

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

综合代码见 day2 - 23-work

你可能感兴趣的:(#UI阶段 - UILabel,UIView动画)