UIView
//将指定视图(tempView)放到最上面
self.view.bringSubviewToFront(tempView)
//将指定的视图放到最下层
self.view.sendSubviewToBack(tempView)
//将指定视图插入到另一个视图的上面
self.view.insertSubview(tempView , aboveSubview: otherView)
//将指定视图插入到另一个视图下面
self.view.insertSubview(tempView , belowSubview: otherView)
animation: 动画
duration: 持续时间
delay: 延迟
option: 选项
completion: 完成
repeat: 重复
autoreverse:自动反向
UIView.animateWithDuration(1, delay: 1, options: [ . Repeat, . Autoreverse], animations: nil, completion: nil)
transform:改变,使…变形;转换
rotation:旋转
scale:缩放
translation: 平移
transform 属性(形变属性)
如果视图发生形变,那么添加到当前视图上的所有子视图都会跟着发生相应的形变
//1.旋转一定角度(旋转角度是圆周率对应的角度值)
myView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
//2.缩放:(sx:x方向上缩放的比例;sy:y方向上缩放的比例)
myView.transform = CGAffineTransformMakeScale(0.5, 5)
//3.平移(在x和y方向上平移的距离)
myView.transform = CGAffineTransformMakeTranslation(0, 400)
//4.多个形变同时进行
//4.1:这个方法就是在另外一个形变前提下旋转 。参数1是另一个形变
myView.transform = CGAffineTransformRotate(CGAffineTransformMakeScale(0.5, 2), CGFloat(M_PI_4))
//4.2:在另一个形变的前提下平移
myView.transform = CGAffineTransformTranslate(myView.transform, 0, 250)
//5组合两个形变
//5.1旋转
let rotate = CGAffineTransformMakeRotation(0.2)
//5.2平移
let transform = CGAffineTransformMakeTranslation(100, 200)
//5.3将两个形变组合在一起
myView.transform = CGAffineTransformConcat(rotate, transform)
UILable
shadow: 阴影
alignment: 对齐
lineBreakMode: 换行模式
font: 字体
italic: 斜体
wrapping:包装
bounding:边界
attributes:属性
//设置字体颜色
lable.textColor = UIColor.greenColor()
//设置阴影颜色
lable.shadowColor = UIColor.blackColor()
//设置阴影的偏移量
lable.shadowOffset = CGSizeMake(5, 5)
//设置文字的居中模式(默认左对齐)
lable.textAlignment = .Left
//设置行数
lable.numberOfLines = 0 //会自动换行
//设置换行模式
lable.lineBreakMode = .ByWordWrapping
//参数1是字体大小;参数2是字体粗细
lable.font = UIFont.systemFontOfSize(50, weight: 1)
//系统的斜体
lable.font = UIFont.italicSystemFontOfSize(50)
//获取系统所有字体的字体名(只对英文起作用,对中文没有影响)
print(UIFont.familyNames())
//参数1:字体名; 参数2:字体大小
lable.font = UIFont.init(name: "字体名", size: 30)
let str = "这里是一段文字"
//计算显示指定文字所需要的最小空间
//将swift字符串转换为oc字符串
let ocStr = str as NSString
//计算字符串大小
//参数1:显示字符串的最大宽度和最大高度
//参数2:设置渲染方式
//参数3:确定字体大小.
//NSFontAttributeName -> 字体对应的key值
//NSForegroundColorAttributeName -> 文字颜色对应的key值
let strSize = ocStr.boundingRectWithSize(CGSizeMake(300, 10000000), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(20)], context: nil)
UIImageView
resorce: 资源
content: 内容,目录,满足,容量
scale: 规模,比例
aspect: 方向,方面,形势,外貌
duration:持续,持续的时间,期间
distant:遥远的;冷漠的;远隔的;不友好的,冷淡的
past: 过去,往事
UIImageView常见的属性和方法
//image属性
//通过图片名创建一个图片对象,如果图片是png格式的,那么图片名的后缀可以省略,其他格式不能省略
imageView.image = UIImage.init(named: "图片名")
//通过图片路径创建一个图片对象
//将文件放到工程中,实质是放到了当前应用程序的包文件中
//想要拿到工程中的 图片路径先要获取包文件的路径
//NSBundle.mainBundle()拿到包 .拿到包的路径pathForResource(<#T##name: String?##String?#>, ofType: <#T##String?#>)
let imagePath = NSBundle.mainBundle().pathForResource("图片名", ofType: "png")//拿到包
imageView.image = UIImage.init(contentsOfFile: imagePath!)
//以上两个方法的区别:通过图片名创建的图片只有在程序退后才会被销毁,只会创建一次
//通过图片路径创建的对象是当前图片对象不再使用的时候就销毁,可能会创建多次
//使用场景:图片名来创建的情况:创建小图标的时候; 在工程中会重复使用的图片
//使用图片地址创建图片的情况:不会频繁的再多个界面出现的大图
//内容模式
imageView.contentMode = .ScaleAspectFill
imageView动画
第一步:创建ImageView,并使用数组将所要播放的图片添加到ImageView上
func creatImageView() {
//通过image去创建一个iamgeVeiw,imageView的大小是图片的大小,坐标是(0, 0)
imageView = UIImageView.init(image: UIImage.init(named: "图片 1"))
imageView.frame.origin = CGPointMake(0, 500)
self.view.addSubview(imageView)
//使用UIImmageView播放帧动画
//a.设置帧动画数组
//创建一个存放image的数组
var imageArray = [UIImage]()
for item in 1...18 {
//拼接图片名
let imageName = "图片 \(item)"
//创建对应图片
let image = UIImage.init(named: imageName)
//将图片存到数组中
imageArray.append(image!)
}
imageView.animationImages = imageArray
//b.设置动画时间
imageView.animationDuration = 1
//c设置重复次数(默认是0,无限循环)
//imageView.animationRepeatCount = 5
//d.开始动画
imageView.startAnimating()
}
第二步:创建一个计时器
//添加定时器,并且自动的开启
//参数1:定时时间;参数2:调用方法的对象;参数3:存储定时时间到了以后需要调用的方法(可以带参,也可以不带参,如果代参只能带一个参,并且参数类型是NSTimer类型);参数4:给当前的NSTimer的uiserInfo属性赋的值;参数5:是否重复
//功能:每个1秒。self去调用一次timerAction方法
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(ViewController.timerAction(_:)), userInfo: "aaa", repeats: true)
第三步:实现定时器要调用的方法
//参数:当前定时器
func timerAction(timer: NSTimer) {
self.imageView.frame.origin.x += 0.1
self.imageView.frame.origin.y -= 0.2
//暂停定时器
// timer.fireDate = NSDate.distantFuture()
//让定时器继续
timer.fireDate = NSDate.distantPast()
}
UIButton
Inside: 里面;内部;内情;内脏
UIButton的用法
工具方法
func btnAction(buttonn: UIButton) {
// print("\(buttonn)被点击")
buttonn.backgroundColor = randomColor()
// buttonn.enabled = false
}
//生成一个随机色
func randomColor() -> UIColor{
let i = CGFloat(arc4random_uniform(256)) / 255
let j = CGFloat(arc4random_uniform(256)) / 255
let k = CGFloat(arc4random_uniform(256)) / 255
return UIColor.init(red: i, green: j, blue: k, alpha: 1)
}
一:设置图片按钮
func imageBtn() {
let imageBtn = UIButton.init(frame: CGRectMake(100, 200, 200, 200))
self.view.addSubview(imageBtn)
//参数1:需要显示的图片;参数2:状态
imageBtn.setImage(UIImage.init(named: "图片名"), forState: .Normal)
imageBtn.backgroundColor = randomColor()
//添加点击事件
imageBtn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: .TouchUpInside)
}
二:设置文字按钮
func titleBtn() {
//UIButton: UIControl: UIView
//btn.titleLabel: 负责显示文字
//btn.imageView: 负责按钮上图片的显示
//==================UIView的属性和方法===================
//创建Button对象
let titleBtn = UIButton.init(frame: CGRectMake(100, 100, 150, 50))
self.view.addSubview(titleBtn)
//设置背景颜色
titleBtn.backgroundColor = randomColor()
//=======UIButton特有的属性和方法=======
//参数1:想要在按钮上显示的文字;参数2:按钮的状态
//.Normal: -> 正常状态(按钮正常显示,没有被点击或者按下的时候)
//.Highlight: -> 高亮状态(按钮被按下,还没有弹起来的时候)
//.Slected: -> 选中状态(需要通过代码来设置selected属性的bool值来确定是否选中)
//.Disable: -> 不可用状态(需要通过代码来设置按钮的enabled属性来确定是否可用)
titleBtn.setTitle("正常", forState: .Normal)
titleBtn.setTitle("高亮", forState: .Highlighted)
//设置当前按钮是否被选中
titleBtn.selected = false
titleBtn.setTitle("被选中", forState: .Selected)
//.Disabled: -> 不可用状态
titleBtn.enabled = true
titleBtn.setTitle("不可用", forState: .Disabled)
//设置文字颜色
titleBtn.setTitleColor(UIColor.yellowColor(), forState: .Normal)
titleBtn.setTitleColor(UIColor.darkGrayColor(), forState: .Highlighted)
//注意!!!:按钮上的文字和文字颜色,必须通过对应的set方法根据状态去设置。因为在设置button的文字和颜色的同时还需要确定是什么状态
// 其他和文字相关的属性可用通过拿到titleLable去设置。
//设置字体大小
titleBtn.titleLabel?.font = UIFont.systemFontOfSize(30)
//设置文字对齐方式
titleBtn.titleLabel?.textAlignment = .Left
//给按钮添加事件
//参数1:调用方法的对象;参数2:方法(指定事件发生后,参数1要去调用的方法。这个方法最多只能带一个参,并且参数类型是UIButton类型);参数3:事件
//.TouchDown -> 按下事件:当按钮被按下的时候,self会调用btnAction方法
//.TouchUpInside -> 当按钮被按下弹起后,slef会调用brnAction方法
//btnAction的参数就是btn按钮
titleBtn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: .TouchDown)
titleBtn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: .TouchUpInside)
}
三:设置图片+文字按钮
func imageTitleButton() {
let btn = UIButton.init(frame: CGRectMake(0, 400, 200, 200))
self.view.addSubview(btn)
btn.backgroundColor = randomColor()
//设置title
btn.setTitle("标题", forState: .Normal)
btn.setTitleColor(UIColor.greenColor(), forState: .Normal)
//设置图片
btn.setImage(UIImage.init(named: "图片名"), forState: .Normal)
//添加事件
btn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: .TouchUpInside)
}
四:自定义图片与文字排布方式
第一步:自定义一个Button类
class WXButton: UIButton {
//要求:图片高度是整个按钮高度的4/5,文字高度是按钮的1/5
//设置button上的imageView的坐标和大小
//参数: 当前button的范围(只需要大小)
//返回值: 重新设置图片的坐标和大小
override func imageRectForContentRect(contentRect: CGRect) -> CGRect {
let x: CGFloat = 0
let y: CGFloat = 0
let w: CGFloat = contentRect.size.width
let h: CGFloat = contentRect.size.height * 4 / 5
return CGRectMake(x, y, w, h)
}
//设置button上的titleLable的坐标和大小
//参数: 当前button的范围(只需要大小)
//返回值: 重新设置文字的坐标和大小
override func titleRectForContentRect(contentRect: CGRect) -> CGRect {
let x: CGFloat = 0
let y: CGFloat = contentRect.size.height * 4 / 5
let w: CGFloat = contentRect.size.width
let h: CGFloat = contentRect.size.height / 5
return CGRectMake(x, y, w, h)
}
}
第二步:利用自定义的BUtton类创建button
let btn = WXButton(frame: CGRectMake(100, 100, 200, 200))
self.view.addSubview(btn)
btn.backgroundColor = UIColor.yellowColor()
btn.setTitle("标题", forState: .Normal)
btn.setTitleColor(UIColor.blackColor(), forState: .Normal)
btn.titleLabel?.textAlignment = .Center
btn.setImage(UIImage.init(named: "图片名"), forState: .Normal)
UITextField
placeholder: 占位符
border: 边境,边界,国界
editing : 编辑
keyboard: 键盘
accessory: 配件,附件,副的
textField内容相关
//给textField设置占位文字(在输入框为空的时候显示)
textField.placeholder = "请输入账号"
//5.设置文本的对齐方式(默认是:左对齐)
textField.textAlignment = .Left
//6.密文显示(默认是false)
textField.secureTextEntry = true
textField显示相关
//1.设置文本框的样式
textField.borderStyle = .RoundedRect//切圆角
//设置清除按钮的模式
textField.clearButtonMode = .Always//总是显示
//左右视图属性
textField.leftView =
textField.rightView =
//左右视图显示模式
textField.leftViewMode = .Always
textField.rightViewMode = .Always
键盘相关
//1.设置键盘上返回按钮的样式(搜索,前往,确定,完成,回车等等样式)
textField.returnKeyType = .Search//搜索
//2.键盘样式(普通键盘,数字键盘等等键盘)
textField.keyboardType = .Default
//设置键盘为某个指定的view
textField.inputView =
//设置键盘的子键盘为某个指定的view
textField.inputAccessoryView =
//收起键盘(结束编辑)
//1.放弃第一响应者
textField.resignFirstResponder()
//2.直接让指定的textField结束编辑
textField.endEditing(true)
//3.让self.view上的所有的子视图都结束编辑
self.view.endEditing(true)
textField代理
给textField设置代理必须要遵守UITextFieldDelegate协议
UITextFieldDelegate协议中的方法是可选类型(可以实现,也可以不实现)
UITextFieldDelegate协议中常用的方法有以下几个
//1.在textField将要开始编辑的时候会自动调用(其中,参数1:当前协议对应的委托;参数2:设置当前textField是否可以进行编辑)
textFieldShouldBeginEditing
//2.文本框已经开始编辑的时候调用
textFieldDidBeginEditing
//3.点击textField弹出的键盘的按键的时候会自动调用
//(参数1: 委托; 参数2:当前输入的字符串所在位置;参数3: 当前输入字符串(键盘上按键的值);返回值:是否可以改变textField的text属性)
textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
//4.文本框将要结束编辑(其中返回值是设置当前的textField是否可以结束编辑)
//使用场合:要求输入框的textField中的文子长度为指定长度时才可以结束编辑
textFieldShouldEndEditing
//5.文本框已经结束编辑
textFieldDidEndEditing
//6.点击键盘上的返回按钮
textFieldShouldReturn
UISwitch-开关
//3.核心属性:开关状态(默认是:关)
//(设sw为开关对象)
//设置开关的状态
sw.on = true //false -> 关
sw.setOn(false, animated: true)
//拿到当前的状态
print(sw.on)
//4.核心方法:
//参数1:调用方法的对象
//参数2:指定的事件发生后参数1要去调用的方法对应的selector
//参数3:事件
//功能:当开关的值(开关的状态)发生改变的时候,self会去调用switchAction方法
sw.addTarget(self, action: #selector(ViewController.switchAction(_:)), forControlEvents: .ValueChanged)//开关是监测它的值改变
//5.设置开关开的状态的颜色(默认是绿色)
sw.onTintColor = UIColor.redColor()
//6.开关关闭的时候的边框颜色
sw.tintColor = UIColor.purpleColor()
//7.设置开关上的滑块的颜色
sw.thumbTintColor = UIColor.yellowColor()
UISlider-滑块
//value:滑块的位置对应的值(默认是0~1)
slider.value = 0.5
//最小值和最大值
slider.minimumValue = 0
slider.maximumValue = 100
//判断值是否连续改变
slider.continuous = false
//核心方法
slider.addTarget(self, action: "sliderAction:", forControlEvents: .ValueChanged)//监测值改变
UIStepper-步进器
//当前值
stepper.value = 1
//最小值和最大值
stepper.minimumValue = 0
stepper.maximumValue = 10
//步进(每按一下加或者减,增加/减少的值)
stepper.stepValue = 1 //步进值必须大于0
//4.核心方法
stepper.addTarget(self, action: "stepperAction:", forControlEvents: .ValueChanged)
//5.设置值是否连续改变(按住不放的时候)
stepper.continuous = false
//6.设置是否重复 false->按住不放的时候不计数;true->按住不放的时候计数
stepper.autorepeat = false
//7.设置填充颜色
stepper.tintColor = UIColor.redColor()
UIProgressView-进度条
//设置当前进度位置
progress.progress = 0.5
progress.setProgress(0.6, animated: true)//显示动画
UIActivityIndicatorView-活动指示器
也就是加载或者缓冲东西的时候还没有完成,显示的转圈的东西
//1.想要让活动指示器显示,必须让它开始动画
activity.startAnimating()
//2.停止动画->活动指示器就会消失
activity.stopAnimating()
//3.设置活动指示器的样式
activity.activityIndicatorViewStyle = .WhiteLarge
CUISegmentedControl-多段选择器
//a.每个分段上的内容 ->通过创建分段选择器的时候去设置
//b.设置当前选中的分段的下标(从0开始)
segemnet.selectedSegmentIndex = 0
//拿到分段选择的分段数
segemnet.numberOfSegments
//设置填充颜色
segemnet.tintColor = UIColor.whiteColor()
//核心方法
segemnet.addTarget(self, action: "segementAction:", forControlEvents: .ValueChanged)
UITextView-显示文本框
专门用来显示一大段文字等
//设置是否可以选中和编辑
//默认是true -> 可以选中和编辑
textView.selectable = true
//是否可以选中删除所有
textView.clearsOnInsertion = true
//其他的属性和方法参考UITextField
网友评论