The Swift Code之设置UIButton的不同方式创建,以及不同的状态和外观

在设置rootViewController之后,在这个control里的viewDidLoad方法里,添加相应的代码.设置了9个不同类型的UIButton

  1. 创建了有状态的button,以及添加button事件

  2. 创建没有状态的button

  3. 创建一个图片文字的按钮,只要图片就不需要设置title

  4. 从系统定义的button类型创建button

  5. 创建禁止button

  6. 创建一个圆角button

  7. 部分圆角button,主要是利用layer的mask属性,在通过CAShaperLayer和UIBezierPath来画

  8. 创建折角button

  9. 创建border的button

importUIKit

classViewController:UIViewController{

overridefuncviewDidLoad(){
super.viewDidLoad()

//创建有状态的按钮
varbtn:UIButton=UIButton(frame:CGRect(x:50,y:50,width:100,height:25))

btn.setTitle("点击按钮",forState:UIControlState.Highlighted)
btn.setTitle("未点击",forState:UIControlState.normal)
btn.backgroundColor=UIColor.blackColor()
self.view.addSubview(btn)
//给按钮添加点击事件
btn.addTarget(self,action:"clickEvent:",forControlEvents:UIControlEvents.TouchUpInside)

//创建没有状态的按钮
varbtn2:UIButton=UIButton(frame:CGRect(x:50,y:85,height:35))
btn2.setTitle("normal",forState:UIControlState.normal)
btn2.backgroundColor=UIColor.blueColor()
self.view.addSubview(btn2)

//创建一个图片文字的按钮
varbtn3:UIButton=UIButton(frame:CGRect(x:50,y:130,width:180,height:35))
btn3.setimage(UIImage(named:"btn1"),forState:UIControlState.normal)
btn3.titleLabel?.font=UIFont.boldSystemFontOfSize(30)
btn3.imageView?.contentMode=UIViewContentMode.ScaleAspectFit
//btn3.imageEdgeInsets=UIEdgeInsets(top:0,left:0,bottom:0,right:0)
btn3.setTitle("图片按钮",forState:UIControlState.normal)
self.view.addSubview(btn3)

//从系统定义的按钮类型创建Button
varbtn4:UIButton=UIButton.buttonWithType(UIButtonType.ContactAdd)as!UIButton
//btn4.backgroundColor=UIColor.brownColor()
btn4.frame.offset(dx:60,dy:200)
self.view.addSubview(btn4)

//创建禁止按钮
varbtn5:UIButton=UIButton(frame:CGRect(x:50,y:240,height:35))
btn5.setTitle("点击按钮",forState:UIControlState.Highlighted)
btn5.setTitle("禁止按钮",forState:UIControlState.normal)
btn5.enabled=false//设置按钮不能点击
btn5.setTitleColor(UIColor.redColor(),forState:UIControlState.disabled)//代表已经禁止
btn5.backgroundColor=UIColor.purpleColor()
self.view.addSubview(btn5)

//创建一个圆角按钮
varbtn6:UIButton=UIButton(frame:CGRect(x:50,y:280,height:35))
btn6.backgroundColor=UIColor.whiteColor()
btn6.setTitleColor(UIColor.blackColor(),forState:UIControlState.normal)
btn6.setTitle("圆角按钮",forState:UIControlState.normal)
btn6.layer.cornerRadius=5
self.view.addSubview(btn6)

//部分圆角按钮,在通过CAShaperLayer和UIBezierPath来画
varbtn7:UIButton=UIButton(frame:CGRect(x:50,y:330,height:35))
btn7.backgroundColor=UIColor.whiteColor()
btn7.setTitleColor(UIColor.blackColor(),forState:UIControlState.normal)
btn7.setTitle("部分圆角按钮",forState:UIControlState.normal)

letshape:CAShapeLayer=CAShapeLayer()
letbepath:UIBezierPath=UIBezierPath(roundedRect:btn6.bounds,byRoundingCorners:UIRectCorner.TopRight|UIRectCorner.TopLeft,cornerRadii:CGSize(width:15,height:15))

UIColor.blackColor().setstroke()
shape.path=bepath.CGPath

btn7.layer.mask=shape
self.view.addSubview(btn7)

//创建折角按钮
varbtn8:UIButton=UIButton(frame:CGRect(x:50,y:380,height:35))
btn8.backgroundColor=UIColor.whiteColor()

btn8.setTitleColor(UIColor.blackColor(),forState:UIControlState.normal)
btn8.setTitle("折角按钮",forState:UIControlState.normal)

letshape8:CAShapeLayer=CAShapeLayer()
letbepath8:UIBezierPath=UIBezierPath()
bepath8.movetoPoint(CGPoint(x:0,y:0))
bepath8.addLinetoPoint(CGPoint(x:80,y:0))

bepath8.addLinetoPoint(CGPoint(x:100,y:15))
bepath8.addLinetoPoint(CGPoint(x:100,y:35))
bepath8.addLinetoPoint(CGPoint(x:0,y:35))
bepath8.closePath()

shape8.path=bepath8.CGPath

btn8.layer.mask=shape8
self.view.addSubview(btn8)

//创建border按钮
varbtn9:UIButton=UIButton(frame:CGRect(x:50,y:420,height:35))
btn9.backgroundColor=UIColor.whiteColor()
btn9.setTitle("边框按钮",forState:UIControlState.normal)
btn9.setTitleColor(UIColor.blackColor(),forState:UIControlState.normal)
btn9.layer.borderColor=UIColor.blackColor().CGColor
btn9.layer.borderWidth=1
btn9.layer.cornerRadius=5
self.view.addSubview(btn9)

//

}


overridefuncdidReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
//dispoSEOfanyresourcesthatcanberecreated.
}

funcclickEvent(sender:AnyObject){
NSLog("按钮点击了事件")
}




}

效果如下

DA06C42A-0C06-4E87-B5C5-D89D14BC7534.png

转载至吴统威的博客:http://www.wutongwei.com/front/infor_showone.tweb?id=88

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...