Swift学习笔记6-UIlabel、UIButton、UIImageView使用

UIlabel使用

1、标签的创建
        let label = UILabel(frame:CGRect(x:10, y:20, width:300, height:100))
        label.text = "ceshi"
        self.view.addSubview(label);
2、背景颜色和文字颜色的设置
        label.textColor = UIColor.white //白色文字
        label.backgroundColor = UIColor.black //黑色背景
3、对齐方式的设置
        label.textAlignment = .right//文字右对齐
4、文字阴影的设置
        label.shadowColor = UIColor.gray  //灰色阴影
        label.shadowOffset = CGSize(width:1.5, height:1.5)  //阴影的偏移量
5、字体的设置
        label.font = UIFont(name:"Zapfino", size:20)
6、文字过长时的省略方式
        label.lineBreakMode = .byTruncatingTail  //隐藏尾部并显示省略号
        label.lineBreakMode = .byTruncatingMiddle  //隐藏中间部分并显示省略号
        label.lineBreakMode = .byTruncatingHead  //隐藏头部并显示省略号
        label.lineBreakMode = .byClipping  //截去多余部分也不显示省略号
7、文字大小自适应标签宽度
        label.adjustsFontSizeToFitWidth = true //当文字超出标签宽度时,自动调整文字大小,使其不被截断
8、使标签可以显示多行文字
        label.numberOfLines = 2  //显示两行文字(默认只显示一行,设为0表示没有行数限制)
9、设置文本高亮
//设置文本高亮
        label.isHighlighted = true
//设置文本高亮颜色
        label.highlightedTextColor = UIColor.green
10、富文本设置
//富文本设置
        let attributeString = NSMutableAttributedString(string:"welcome to ceshi.com")
//从文本0开始6个字符字体HelveticaNeue-Bold,16号
        attributeString.addAttribute(NSFontAttributeName,
                             value: UIFont(name: "HelveticaNeue-Bold", size: 16)!,
                             range: NSMakeRange(0,6))
//设置字体颜色
        attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.blue,
                             range: NSMakeRange(0, 3))
//设置文字背景颜色
        attributeString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.green,
                             range: NSMakeRange(3,3))
        label.attributedText = attributeString

UIButton使用

1、按钮的创建
(1)按钮有下面四种类型:
    UIButtonType.system:前面不带图标,默认文字颜色为蓝色,有触摸时的高亮效果
    UIButtonType.custom:定制按钮,前面不带图标,默认文字颜色为白色,无触摸时的高亮效果
    UIButtonType.contactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
    UIButtonType.detailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
    UIButtonType.infoDark:为感叹号“!”圆形按钮
    UIButtonType.infoLight:为感叹号“!”圆形按钮
(注意:自ios7起,infoDark、infoLight、detailDisclosure效果都是一样的)
(2)对于Custom定制类型按钮,代码可简化为:
     let button = UIButton(frame:CGRect(x:10, y:150, width:100, height:30))

2、按钮的文字设置
     button.setTitle("普通状态", for:.normal) //普通状态下的文字
     button.setTitle("触摸状态", for:.highlighted) //触摸状态下的文字
     button.setTitle("禁用状态", for:.disabled) //禁用状态下的文字

3、按钮文字颜色的设置
     button.setTitleColor(UIColor.black, for: .normal) //普通状态下文字的颜色
     button.setTitleColor(UIColor.green, for: .highlighted) //触摸状态下文字的颜色
     button.setTitleColor(UIColor.gray, for: .disabled) //禁用状态下文字的颜色

4、按钮文字阴影颜色的设置

     button.setTitleShadowColor(UIColor.green, for:.normal) //普通状态下文字阴影的颜色
     button.setTitleShadowColor(UIColor.yellow, for:.highlighted) //普通状态下文字阴影的颜色
     button.setTitleShadowColor(UIColor.gray, for:.disabled) //普通状态下文字阴影的颜色

5、按钮文字的字体和大小设置
     button.titleLabel?.font = UIFont.systemFont(ofSize: 11)

6、按钮背景颜色设置
     button.backgroundColor = UIColor.black
7、按钮文字图标的设置 
(1)默认情况下按钮会被渲染成单一颜色
     button.setImage(UIImage(named:"icon1"),forState:.Normal)  //设置图标
     button.adjustsImageWhenHighlighted=false //使触摸模式下按钮也不会变暗(半透明)
     button.adjustsImageWhenDisabled=false //使禁用模式下按钮也不会变暗(半透明)
(2)也可以设置成保留图标原来的颜色
     let iconImage = UIImage(named:"icon2")?.withRenderingMode(.alwaysOriginal)
     button.setImage(iconImage, for:.normal)  //设置图标
     button.adjustsImageWhenHighlighted = false //使触摸模式下按钮也不会变暗(半透明)
     button.adjustsImageWhenDisabled = false //使禁用模式下按钮也不会变暗(半透明)
8、设置按钮背景图片
     button.setBackgroundImage(UIImage(named:"bg1"), for:.normal)
9、按钮触摸点击事件响应
//不传递触摸对象(即点击的按钮)
     button.addTarget(self, action:#selector(tapped), for:.touchUpInside)
     func tapped(){
          print("tapped")
     }
 
//传递触摸对象(即点击的按钮),需要在定义action参数时,方法名称后面带上冒号
     button.addTarget(self, action:#selector(tapped(_:)), for:.touchUpInside)
 
     func tapped(_ button:UIButton){
          print(button.title(for: .normal))
     }
常用的触摸事件类型:
touchDown:单点触摸按下事件,点触屏幕
touchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
touchDragInside:触摸在控件内拖动时
touchDragOutside:触摸在控件外拖动时
touchDragEnter:触摸从控件之外拖动到内部时
touchDragExit:触摸从控件内部拖动到外部时
touchUpInside:在控件之内触摸并抬起事件
touchUpOutside:在控件之外触摸抬起事件
touchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断

UIImageView使用(设置圆角)

1、通过设置imageView圆角来实现
这种方法实际上没有对原始图片进行处理。只不过在展示的时候,通过设置 UIImageView 圆角半径,从而显示成圆形图片。

//获取图片
let image = UIImage(named: "image1")
//创建imageView
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x:40, y:40, width:100, height:100)
imageView.contentMode = .scaleAspectFill
//设置遮罩
imageView.layer.masksToBounds = true
//设置圆角半径(宽度的一半),显示成圆形。
imageView.layer.cornerRadius = imageView.frame.width/2
self.view.addSubview(imageView)

2,通过图片裁剪来实现
这种方式是通过遮罩剪切的方法,重新生成一张圆形的图片。
(1)扩展 UIImage,增加圆形裁剪方法
extension UIImage {
    //生成圆形图片
    func toCircle() -> UIImage {
        //取最短边长
        let shotest = min(self.size.width, self.size.height)
        //输出尺寸
        let outputRect = CGRect(x: 0, y: 0, width: shotest, height: shotest)
        //开始图片处理上下文(由于输出的图不会进行缩放,所以缩放因子等于屏幕的scale即可)
        UIGraphicsBeginImageContextWithOptions(outputRect.size, false, 0)
        let context = UIGraphicsGetCurrentContext()!
        //添加圆形裁剪区域
        context.addEllipse(in: outputRect)
        context.clip()
        //绘制图片
        self.draw(in: CGRect(x: (shotest-self.size.width)/2,
                              y: (shotest-self.size.height)/2,
                              width: self.size.width,
                              height: self.size.height))
        //获得处理后的图片
        let maskedImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return maskedImage
    }
}

(2)使用样例
//获取图片
let image = UIImage(named: "image1")?.toCircle()
//创建imageView
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x:40, y:40, width:100, height:100)
self.view.addSubview(imageView)

你可能感兴趣的:(Swift学习笔记6-UIlabel、UIButton、UIImageView使用)