我想在一个按钮中显示图像和标题,然后我尝试setImageEdgeInsets和setTitleEdgeInsets。但它让我感到困惑。
在设置insets属性之前,按钮如下所示( 黑色 rect表示按钮边界, 红色 rect表示图像rect, 绿色 rect表示标题rect。)
附加说明:我的图片的实际尺寸是我使用的两倍,这意味着
** [image size].width = imageWidth * 2 **
然后我使用setImageEdgeInsets函数来设置图像rect
[btn setImageEdgeInsets:UIEdgeInsetsMake((btnHeight-titleHeight-imageHeight)/2.0,
(btnWidth-imageWidth)/2,
titleHeight+(btnHeight-titleHeight-imageHeight)/2.0,
(btnWidth-imageWidth)/2)];
现在按钮喜欢这个
然后我使用setTitleEdgeInsets函数来设置标题矩形
我首先想的是代码应该是:
[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, 0, 0, 0)];
但按钮实际上喜欢这个
我也尝试代码:
[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, -imageWidth, 0, 0)];
按钮现在喜欢这个
然后我尝试代码:
[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, -imageWidth*2, 0, 0)];
它有效!
但我现在很困惑!为什么标题的左边插图应该是否定的?为什么它与图像的宽度有关?