UIButton的一些常用知识点

关于UIButton的一些常用资料:


button修改标题颜色,字体等需要用setter方法

[menuButton setTitleColor : ButtonFontColor  forState :( UIControlStateNormal )];



    //创建按钮
    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

你可能感兴趣的:(iOS,button)