UIButton中显示的图片和标题位置的设置

     button应该说大家都很熟悉,在初学的时候,咱们常常会发现一个问题:在设置image的时候如果同时设置title,则”不能“同时显示出来,除非设置BKimage。那么这是怎么回事呢,下面我们一起做如下测试:

我现在随意截取一张img,如下是图片的原图,


获取到他的高度和宽度:

     UIImage *img = [UIImageimageNamed:@"1"];

    CGFloat wide =CGImageGetWidth(img.CGImage); //img的宽度

        CGFloat height = CGImageGetHeight(img.CGImage);//img的宽度

    NSLog(@"w:%.2f  h:%.2f",wide,height);

得到图片的宽高分别是:158和112。

情况一:我在按钮上设置img和title,并且按钮的宽度小于img的宽度:

//代码如下:

UIButton *button = [UIButtonbuttonWithType:UIButtonTypeCustom];

    button.frame = CGRectMake(120,220, 100, 90);

    button.backgroundColor = [UIColorredColor];

    button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 9, 0);

    [button setImage:img forState:UIControlStateNormal];

    [button setTitle:@"这是一个标题"forState:UIControlStateNormal];

    [self.view addSubview:button];

得到的图片结果如下:


咱们不难发现图片被压缩了,当然title也没有显示

情况二:按钮的宽度稍大img的宽度

button.frame =CGRectMake(120,220,220,90);

出现的结果如下:


此时图片按照原来的大小显示,但是标题没有显示全,那么咱们应该知道以前为什么说设置了图片和title为什么不会同时显示了,咱们如果将button的宽度设置的足够大(button的宽度>=img的宽度+title的宽度)则img和标题完全可以都显示。

情况三:button的宽度>=img的宽度+title的宽度

出现如下的情况:


标题和img都显示出来了,并且img显示在左侧,title显示在右侧,并且中间没有空隙。

至此也说明了其中的原由,那么如果我们想设置一种上侧显示img,下侧显示title的按钮,则这种样式是满足不了的,那么此时就用到UIEdgeInserts响应知识了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值