美文网首页
ios12 setTitleEdgeInsets 的问题2018

ios12 setTitleEdgeInsets 的问题2018

作者: iOS打怪升级 | 来源:发表于2018-10-19 14:31 被阅读29次
关于对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 ,所以设置的时候要成对设置)

相关文章

网友评论

      本文标题:ios12 setTitleEdgeInsets 的问题2018

      本文链接:https://www.haomeiwen.com/subject/grbyzftx.html