Swift,UIButton,addTarget

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效果都是一样的)

Swift,UIButton,addTarget_第1张图片

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:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断

你可能感兴趣的:(Swift,UIButton,addTarget)