iOS按钮UIButton常用属性总结

UIButton在iOS开发中是再常用不过的控件了,但有些属性用的较少,难免会忘记,今天对按钮的属性稍作总结。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 100, 300, 100)];
    btn.backgroundColor = [UIColor grayColor];
    [self.view addSubview:btn];
    
    /*
     button显示的内容是带状态的,即在不同的状态下可能会显示不同的内容,所以在设置button需要在
     特定的状态下设置,如:1)背景图片 2)文字内容、颜色 3)图片
     
     按钮的状态
     UIControlStateNormal          // 正常状态
     UIControlStateHighlighted     // 高亮状态
     UIControlStateDisabled        // 禁用状态
     UIControlStateSelected        // 选中状态
     UIControlStateApplication     //
     UIControlStateReserved        // 保留状态
     */
    
    // 1.背景图片
    [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_image"] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:@"btn_bg_image_h"] forState:UIControlStateHighlighted];
    
    /*  2.按钮文字
     @property(nonatomic,readonly,retain) UILabel     *titleLabel
     1.不能通过titleLabel.text属性来设置按钮的文字,设置按钮的文字需要根据状态设置文字
     2.通过设置titleLabel.font设置按钮文字的字体。
     
     btn.titleLabel.text = @"UIButton文字"; //不能设置按钮文字
     */
    
    // 设置文字内容、颜色时一定要带状态
    [btn setTitle:@"UIButton正常状态文字" forState:UIControlStateNormal];
    [btn setTitle:@"UIButton高亮状态文字" forState:UIControlStateHighlighted];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];
    btn.titleLabel.font = [UIFont systemFontOfSize:27]; // 文字字体
    btn.titleLabel.backgroundColor = [UIColor blackColor]; // 按钮内部label背景
    
    
    /* 3.按钮的图片
     @property(nonatomic,readonly,retain) UIImageView *imageView
     btn.imageView.image = [UIImage imageNamed:@"btn_image"]; //不能设置按钮图片
     */
    
    [btn setImage:[UIImage imageNamed:@"btn_image"] forState:UIControlStateNormal];
    [btn setImage:[UIImage imageNamed:@"btn_image_h"] forState:UIControlStateHighlighted];
    
    // 4.内边距相关设置
    // 设置按钮内容(包括文字和图片)的内边距
    [btn setContentEdgeInsets:UIEdgeInsetsMake(10, 0, 0, 0)];
    // 设置文字的内边距
    [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, -50, 10, 0)];
    // 设置图片的内边距
    [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 20, 10, 0)];
    
    
    // 5、按钮内部内容(文字,图片)位置水平、垂直方向调整
    /*
     @property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment; 
     调整按钮内容在水平方向的位置, 默认情况下是居中的
     
     UIControlContentHorizontalAlignmentCenter = 0, // 水平居中 (默认)
     UIControlContentHorizontalAlignmentLeft   = 1, // 紧靠左边
     UIControlContentHorizontalAlignmentRight  = 2, // 紧靠右边
     UIControlContentHorizontalAlignmentFill   = 3, // 水平方向填充
     */
    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
    
    /*
     @property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment;
     调整按钮内容在垂直方向的位置, 默认情况下是居中的
     
     UIControlContentVerticalAlignmentCenter  = 0, // 垂直居中 (默认)
     UIControlContentVerticalAlignmentTop     = 1, // 紧靠顶部
     UIControlContentVerticalAlignmentBottom  = 2, // 紧靠底部
     UIControlContentVerticalAlignmentFill    = 3, // 垂直方向填充
     */
    btn.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
    
    // 6、按钮各种状态下显示效果
    //点击时的闪光效果会被前景图片遮住中间部分 (默认为NO)
    btn.showsTouchWhenHighlighted = YES;
    
    //当按钮高亮的情况下,图像的颜色会被画深一点,(默认为YES)
    btn.adjustsImageWhenHighlighted = YES;
    
    // 当按钮禁用的情况下,图像的颜色会被画深一点,(默认为YES)
    btn.adjustsImageWhenDisabled = YES;
    
    // 7、监听按钮的点击
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
}

- (void)btnClick:(UIButton *)btn
{
    NSLog(@"====btnClick===");
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值