swift - UIButton 的用法
1,按钮的创建
(1)按钮有下面四种类型:
contactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
detailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
system:前面不带图标,默认文字颜色为蓝色,有触摸时的高亮效果
custom:定制按钮,前面不带图标,默认文字颜色为白色,无触摸时的高亮效果
infoDark:为感叹号“!”圆形按钮
infoLight:为感叹号“!”圆形按钮
//创建一个ContactAdd类型的按钮
let button:UIButton = UIButton(type:.custom)
//设置按钮位置和大小
button.frame=CGRect(x:50,y:180,width:self.view.bounds.size.width - 100,height:50)
//设置按钮文字
button.setTitle("按钮", for: .normal)
self.view.addSubview(button);
(2)对于Custom定制类型按钮,代码可简化为:
let btn = CGRect(x:100,y:200,width:80,height:50)
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.backgroundColor=UIColor.black
6,按钮文字图标的设置
button.setImage(UIImage(named:"icon1"),for:.normal) //设置图标
button.adjustsImageWhenHighlighted=false //使触摸模式下按钮也不会变暗
button.adjustsImageWhenDisabled=false //使禁用模式下按钮也不会变暗
7,设置按钮背景图片
button.setBackgroundImage(UIImage(named:"background1"),for:.normal)
8,按钮触摸点击事件响应
//不传递触摸对象(即点击的按钮)
button.addTarget(self,action:#selector(tapped),for:.touchUpInside)
func tapped(){
print("tapped")
} //传递触摸对象(即点击的按钮),需要在定义action参数时,方法名称后面带上冒号
button.addTarget(self,action:#selector(tapped(_button:)),for:.touchUpInside)
func tapped(_button:UIButton){ }
常用的触摸事件类型:
touchDown:单点触摸按下事件,点触屏幕
touchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
touchDragInside:触摸在控件内拖动时
touchDragOutside:触摸在控件外拖动时
touchDragEnter:触摸从控件之外拖动到内部时
touchDragExit:触摸从控件内部拖动到外部时
touchUpInside:在控件之内触摸并抬起事件
touchUpOutside:在控件之外触摸抬起事件
touchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断
9.我们通过修改button按钮中的titleLabel的lineBreakMode属性,遍可以调整按钮在文字超长的情况下如何显示,以及是否换行
case byWordWrapping // Wrap at word boundaries, default 自动换行,按词拆分
case byCharWrapping // Wrap at character boundaries 自动换行,按字符拆分
case byClipping // Simply clip 直接将多余的部分截断
case byTruncatingHead // Truncate at head of line: "...wxyz"
case byTruncatingTail // Truncate at tail of line: "abcd..."
case byTruncatingMiddle // Truncate middle of line: "ab...yz"
换行符:/n
swift - UIButton 的用法的更多相关文章
- Swift - enumerateObjectsUsingBlock的用法
enumerateobjectsusingblock:不是Array的方法在NSArray使用.如果你想使用它,你需要一个实例NSArray而不是Array. import Foundation va ...
- swift函数的用法,及其嵌套实例
import Foundation //swift函数的使用 func sayHello(name userName:String ,age:Int)->String{ return " ...
- Swift继承的用法
一个类可以继承另一个类的方法,属性和其它特性.当一个类继承其它类,继承类叫子类,被继承类叫超类(或父类).在Swift中,继承是区分「类」与其它类型的一个基本特征. 在Swift中,类可以调用和访问超 ...
- UIButton UIImage 用法分析
一.UIButton和UIImageView的区别 1.显示图片 1> UIImageView只能显示一种图片(图片默认会填充整个UIImageView) image\setImage: 2&g ...
- swift - UIDatePicker 的用法
1.初始化button,datepicker,label等控件,初始化时间格式化器 var datePicker = UIDatePicker() var btnShows = UIBu ...
- swift - UIAlertController 的用法
ios 8 以后苹果官方建议使用UIAlertController这个类,所以专门去网上找资料,了解了下用法, 1.创建一个alertController let alertController = ...
- swift - UIAlertView 的用法
1,创建一个alertview,并带有“确定”和“取消”两个按钮 (注:在这里使用alertview,会报警告,那是因为从ios 8 以后,建议使用UIAlertviewController) //警 ...
- swift - UISlider 的用法
swift的UISlider的用法和oc基本没有区别 1.创建 class SecondViewController: UIViewController { var slider = UISlider ...
- swift - UISegmentedControl 的用法
一.创建控件,并监听控件选择值 /*选项除了文字还可以是图片 as关键字的作用就是字面意思:类型转换*/ let items = ["选项一", "选项二", ...
随机推荐
- 解析html文档的java库及范例
用这个工具jsoup <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <v ...
- python+xpath+requests爬取维基百科历史上的今天
import requests import urllib.parse import datetime from lxml import etree fhout = open("result ...
- 第一个struts程序的配置过程
然后输入project-name,比如说“test",点finish,配置web.xml,这里的org.apache.struts.action.ActionServlet就在struts- ...
- 使用filter导致服务器返回的页面始终是空白---在doFilter中漏写了chain.doFilter()
今天调代码的时候,突然发现,服务器开着,什么都没有问题,当我把下面这个filter给deploy了以后,访问所有的页面就都是空白. 后来发现,是因为在代码路径中,有一条路径没有调用filterChai ...
- 错误地使用catch
try { // do something } catch (Exception e) { } 错误:这里,catch了Exception,但是在catch中什么动作都没做,那么所有的Exceptio ...
- AMQP学习 & RabbitMQ 与 ActiveMQ、ZeroMQ以及Kafka的比较
之前写了一篇文章关于Active以及消息队列推拉模式的文章,可以参考:link 关于 Active 与 RabbitMQ以及其他的比较,有如下记录: 这篇文章 link 提到: 基本介绍RabbitM ...
- tomcat架构分析(概览)
出处:http://gearever.iteye.com Tomcat是目前应用比较多的servlet容器.关于tomcat本身的特点及介绍,网上已经有很多描述了,这里不再赘述.Tomcat除了能够支 ...
- iOS cocopods安装使用和安装过程中遇到的问题及解决办法
在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...
- Linux 下 tail 命令
简述 tail命令从指定点开始将文件写到标准输出,使用tail命令的“-f”选项可以方便的查阅正在改变的日志文件,“tail -f filename”会把filename里最尾部的内容显示在屏幕上,并 ...
- [mmc]设备树节点含义
&mmc3 { status = "okay"; dmas = <&edma &edma >; dma-names = "tx&quo ...