UIKit框架-基础控件Swift版本: 2.UIButton方法/属性详解
前面我们讲完了控件的父类, 现在让我们正式进入基础控件的讲解, 现在来讲解第一个UI基础控件UIButton:
1.UIButton的类型
在UIButton里面有分几种类型, 让我们来看看:
enum UIButtonType : Int {
// 1.自定义类型
case Custom
// 2.系统类型
case System
// 3.信息类型
case DetailDisclosure
// 4.也是信息类型
case InfoLight
// 5.也是信息类型
case InfoDark
// 6.添加类型
case ContactAdd
}
这里就是UIButton的样式:
下面是我们设置Button时的状态:
struct UIControlState : RawOptionSetType {
init(_ rawValue: UInt)
init(rawValue: UInt)
// 1.UIButton正常的状态
static var Normal: UIControlState { get }
// 2.UIButton高亮的状态
static var Highlighted: UIControlState { get }
// 3.UIButton禁用的状态
static var Disabled: UIControlState { get }
// 4.UIButton选择的状态
static var Selected: UIControlState { get }
// 5.UIButton标志该应用可用(忽略, 没用过这个状态)
static var Application: UIControlState { get }
// 6.UIButton保留状态
static var Reserved: UIControlState { get }
}
2.常用属性
在我们的UIButton里面也有一些我们常用的属性和一些不常用的属性, 不常用的属性我们只是带一下就可以了, 如果有需要的话再去仔细研究:
// 1.设置UIButton的标题, 以及状态
func setTitle(title: String?, forState state: UIControlState)
// 2.设置UIButton的标题颜色, 以及状态
func setTitleColor(color: UIColor?, forState state: UIControlState)
// 3.设置UIButton的前置图, 以及状态
func setImage(image: UIImage?, forState state: UIControlState)
// 4.设置UIButton的背景图, 以及状态
func setBackgroundImage(image: UIImage?, forState state: UIControlState)
// 5.设置UIButton的阴影颜色, 以及状态
func setTitleShadowColor(color: UIColor?, forState state: UIControlState)
PS: UIButton是可以设置两张图片, 一张是前置图, 一张是背景图, 但这里要注意一下, 如果你同时设置了前置图和title的话, 那么UIButton的显示效果就不太正常了.
3.演示
下面让我们来看看UIButton的演示:
创建好的工程就是这样子的了:
下面让我们来添加代码:
func myButton() {
// 1.创建UIButton, 并且设置为Custom样式
var button: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
// 2.设置UIButton的坐标轴
button.frame = CGRectMake(100, 200, 100, 40)
// 3.设置UIButton的背景色
button.backgroundColor = UIColor.redColor()
// 4.设置UIButton的Normal状态下的title
button.setTitle("我是按钮", forState: UIControlState.Normal)
// 5.设置UIButton的Normal状态下的title颜色
button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
// 6.设置UIButton的Highlighted状态下的title
button.setTitle("哎哟被点了", forState: UIControlState.Highlighted)
// 7.设置UIButton的Highlighted状态下的title颜色
button.setTitleColor(UIColor.greenColor(), forState: UIControlState.Highlighted)
// 8.设置UIBUtton的Noraml状态下的title阴影颜色
button.setTitleShadowColor(UIColor.whiteColor(), forState: UIControlState.Normal)
// 9.设置UIButton的Highlighted状态下的title阴影颜色
button.setTitleShadowColor(UIColor.darkGrayColor(), forState: UIControlState.Highlighted)
// 10.添加UIBUtton在touchUpInside点击下的监听方法
button.addTarget(self, action: "buttonTarget:", forControlEvents: UIControlEvents.TouchUpInside)
// 其他属性
// 11.设置Button的内容位置
button.contentEdgeInsets = UIEdgeInsetsMake(100, 0, 0, 0)
// 12.添加到self.view上
self.view.addSubview(button)
}
// 13.UIButton的被监听方法
func buttonTarget(sender: UIButton!) {
// 14.随便打印一些值
println("点击我干嘛?")
// 15.删除监听方法
sender.removeTarget(self, action: "buttonTarget:", forControlEvents: UIControlEvents.TouchUpInside)
}
最后再把这些方法在viewDidload方法中实现:
override func viewDidLoad() {
super.viewDidLoad()
self.myButton()
}
出来的代码效果图:
运行之后的效果图:
PS: 模拟器的背景色是在别的地方修改了, 所以这里大家就不要纠结了, 而模拟器左边的几个按钮, 就是上面为了让大家看到的样式例子, 这里也不需要纠结, 中间红色的那个Button才是我们用代码直接创建的.
好了这次我们就讲到这里, 下次我们继续~~~