swift 3.0 对于addTarget进行了优化首先先看一下addTarget的写法:#selector(【类、结构体】.function)
btn.addTarget(self, action: #selector(self.changeStringBtn(_:)), for: .touchUpInside)
2.关于UIButton
1.创建
let btn = UIButton.init(type: .custom)
btn.frame = CGRect.init(x: 100, y: 200, width: 80, height: 44)
btn.setTitle("改word", for: .normal)
btn.backgroundColor = #colorLiteral(red: 0.3411764801, green: 0.6235294342, blue: 0.1686274558, alpha: 1)
btn.addTarget(self, action: #selector(self.changeStringBtn(_:)), for: .touchUpInside)
view.addSubview(btn)
以上是简单的Btn的创建,下面是btn的几个属性:
1.Btn的类型
UIButtonType.system:前面不带图标,默认文字颜色为蓝色,有触摸时的高亮效果
UIButtonType.custom:定制按钮,前面不带图标,默认文字颜色为白色,无触摸时的高亮效果
UIButtonType.contactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
UIButtonType.detailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
UIButtonType.infoDark:为感叹号“!”圆形按钮
UIButtonType.infoLight:为感叹号“!”圆形按钮
(注意:自ios7起,infoDark、infoLight、detailDisclosure效果都是一样的)
2,按钮文字阴影颜色的设置
button.setTitleShadowColor(UIColor.green, for:.normal) //普通状态下文字阴影的颜色
3、设置图片
let image = UIImage.init(named: "checkbox_checked")?.withRenderingMode(.alwaysOriginal) //之前是默认渲染的,如果不设置图片为alwaysOriginal,会被渲染成单一的颜色
现在可简化为:
let image = UIImage.init(named: "checkbox_checked")
btn.setImage(image, for: .normal)
最后补充一下常见的触摸事件类型:
touchDown:单点触摸按下事件,点触屏幕
touchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
touchDragInside:触摸在控件内拖动时
touchDragOutside:触摸在控件外拖动时
touchDragEnter:触摸从控件之外拖动到内部时
touchDragExit:触摸从控件内部拖动到外部时
touchUpInside:在控件之内触摸并抬起事件
touchUpOutside:在控件之外触摸抬起事件
touchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断