关于UIButton的一些常用资料:
button修改标题颜色,字体等需要用setter方法
//创建按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
/* UIButtonType 按钮类型:(前两种是常用类型)
UIButtonTypeCustom = 0, // no button type//自定义类型
UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0), // standard system button//系统类型, 标准类型
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
UIButtonTypeRoundedRect = UIButtonTypeSystem, // Deprecated, use UIButtonTypeSystem instead
*/
//设置按钮属性
button.frame = CGRectMake(50, 100, 200, 50);//设置位置和大小 (必须的一步)
button.backgroundColor = [UIColor yellowColor];//背景颜色
[button setTitle:@"登录" forState:UIControlStateNormal];//按钮文字, 正常状态
[button setTitle:@"按下" forState:UIControlStateHighlighted];//按钮文字, 高亮状态
/* UIControlState 按钮控制器状态:
UIControlStateNormal = 0, // 正常状态
UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set 高亮状态, (按钮被按下)
UIControlStateDisabled = 1 << 1, // 不可用状态
UIControlStateSelected = 1 << 2, // flag usable by app (see below) 选中状态
UIControlStateApplication = 0x00FF0000, // additional flags available for application use
UIControlStateReserved = 0xFF000000 // flags reserved for internal framework use
*/
//button.enabled = NO;//设置为不可用状态(默认为YES, 可用)
//button.selected = YES;//设置为选中状态(默认为NO, 非选中状态)
// 其他根据状态设置的按钮属性
//最上层(和文字一层)的图片 和 背景图片: 设置了正常状态下的,高亮状态下也显示, 设置了高亮状态下的,正常状态下不显示
[button setImage:[UIImage imageNamed:@"001.png"] forState:UIControlStateNormal];//正常状态下的图片(和文字一层)
//图片默认添加在文字前面, 和文字一层, 会把文字挤到后面. 注意按钮的大小, 防止文本空间不够, 变成"..."
[button setImage:[UIImage imageNamed:@"10.png"] forState:UIControlStateHighlighted];//高亮状态下的图片
[button setBackgroundImage:[UIImage imageNamed:@"002.jpg"] forState:UIControlStateNormal];//正常状态下的背景图片
[button setBackgroundImage:[UIImage imageNamed:@"5.png"] forState:UIControlStateHighlighted];//高亮状态下的背景图片
//添加图片: png图片可以省略后缀, 其他图片要加上后缀.
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];//设置按钮字体颜色, 和图片一样, 设置了正常状态下的, 高亮状态下的也改变. 设置了高亮状态下的, 正常状态下不改变.
//如果不设置,system类型的默认是蓝色. custom自定义类型的相当于没有设置, 无色/白色
//关于图片显示: system类型不显示最上层(和文字一层)的图片, 想显示最上层的图片需要改成custom类型
[button setTintColor:[UIColor redColor]];//改变最上层字体颜色 和 图片背景色
//关于字体颜色 和 图片背景色: system类型的可以用setTintColor方法改变最上层字体颜色 和 图片背景颜色(因为显示不了图片就可以看到图片的背景色). 而且, 如果前面或者后面已经单独设置了字体的颜色, setTintColor方法并不改变字体的颜色,只改变图片的背景色.
//custom类型的按钮, setTintColor方法是无效的.
button.titleLabel.font = [UIFont systemFontOfSize:15.2];//改变字体大小. 字体会变成单独的一层
//其他:
button.showsTouchWhenHighlighted = YES;//设置为YES以后,点击按钮, 按钮会发光. 默认为NO
//按着CMD键, 鼠标点击进去. 就可以看到相邻的几个其他设置, 比如标题文本的阴影设置等
//把按钮添加到父视图上
[self.view addSubview:button];
//释放空间
//button是通过便利构造器创建的, 没有alloc, 不释放
//总结: 一般, 简单的UIButton对象由两层组成, 下面一层是UIButton, 上面一层是UIButtonLabel(这一层可以加图片UIImageView), 显示按钮文本(按钮名称)
//如果添加按钮背景图片, 在UIButton和UIButtonLabel中间会增加一层UIImageView. 如果改变字体大小, 又会增加一层字体层, 在最上面.
//运行程序之后可以点击调试窗口上面的Debug View Hierarchy(调试视图层次)来查看
//当然, UIButton作为UIView的一个子类, 上面可以继续添加其他的View子视图
参考文档: http://blog.csdn.net/heng615975867/article/details/38873647