ios12 setTitleEdgeInsets 的问题2018

2018-10-19  本文已影响29人  iOS打怪升级
关于对UIButton 同时设置图片和文本的问题
目前发现的问题:在ios 12上,同时设置titleLabel 和imageView EdgeInsets 无效果,原因不知,记录
需要的效果: image.png
实现的代码
        NSInteger  offsetX_img = CGRectGetMidX(itemBtn.bounds) - CGRectGetMidX(itemBtn.imageView.frame);
        NSInteger  offsetX_title = CGRectGetMidX(itemBtn.bounds) - CGRectGetMidX(itemBtn.titleLabel.frame);
        [itemBtn setTitleEdgeInsets:UIEdgeInsetsMake(22, offsetX_title, -22, -offsetX_title)];
        [itemBtn setImageEdgeInsets:UIEdgeInsetsMake(-15, offsetX_img, 15, -offsetX_img)];

随便参考

说明:默认情况下的效果


image.png

需要知道的:imageView 和titleLabel 左右排列,EdgeInsets表示的相对于其默认位置向四个方向的偏移,不要误解成距离边的距离;关于上下 ,左右设置的时候要成对设置,否则会偏移效果减半,所以我理解这里的偏移是由一个维度上的两个值求和除二决定的(设想一下向上偏移10, 是不是上下都偏移10 ,所以设置的时候要成对设置)

上一篇 下一篇

猜你喜欢

热点阅读