iOS UIButton按钮图片在上文字在下

// 创建自定义按钮

    UIButton *btn_click = [UIButton buttonWithType:UIButtonTypeCustom];

    // 创建普通状态按钮图片

    [btn_click setImage:[UIImage imageNamed:@"home"] forState:UIControlStateNormal];

    // 创建高亮或选中状态按钮图片

    [btn_click setImage:[UIImage imageNamed:@"home-selected"] forState:UIControlStateHighlighted];

    // 设置按钮普通状态标题

    [btn_click setTitle:@"我的主帖" forState:UIControlStateNormal];

    // 设置按钮字体

    btn_click.titleLabel.font = [UIFont systemFontOfSize:14];

    // 设置按钮普通状态标题颜色

    [btn_click setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    // 设置按钮高亮或选中状态标题颜色

    [btn_click setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];

    // 设置按钮背颜色

    [btn_click setBackgroundColor:[UIColor grayColor]];

    // 按钮按下后的模糊状态

    [btn_click setAdjustsImageWhenHighlighted:NO];

    // 按钮点击事件

    [btn_click addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside];

    

    // 按钮坐标和尺寸

    btn_click.frame = CGRectMake(0, 200, APP_WIGHT/2, 49);

    // 按钮图片和标题总高度

    CGFloat totalHeight = (btn_click.imageView.frame.size.height + btn_click.titleLabel.frame.size.height);

    // 设置按钮图片偏移

    [btn_click setImageEdgeInsets:UIEdgeInsetsMake(-(totalHeight - btn_click.imageView.frame.size.height), 0.0, 0.0, -btn_click.titleLabel.frame.size.width)];

    // 设置按钮标题偏移

    [btn_click setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -btn_click.imageView.frame.size.width, -(totalHeight - btn_click.titleLabel.frame.size.height),0.0)];

    // 加载按钮到视图

    [self.view addSubview:btn_click];


效果如下:


关于UIButton,既可以采用setBackgroundImage 来设置底部图片,同时也可以采用  setImage方法;两者还是有一定区别的;

首先setBackgroundImage,image会随着button的大小而改变,图片自动会拉伸来适应button的大小,这个时候仍然可以设置button的title,title默认在button中间image不会挡住title;

相反的的setImage,图片不会进行拉伸,原比例的显示在button上,此时再设置title,title默认显示在图右边,因此可以根据需求选中方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值