setImageEdgeInsets会影响setTitleEdgeInsets吗?为什么标题的左边插图应该是否定的,让标题以按钮为中心

时间:2014-11-23 07:24:24

标签: image uibutton title uiedgeinsets

我想在一个按钮中显示图像和标题,然后我尝试setImageEdgeInsets和setTitleEdgeInsets。但它让我感到困惑。

在设置insets属性之前,按钮如下所示( 黑色 rect表示按钮边界, 红色 rect表示图像rect, 绿色 rect表示标题rect。)

附加说明:我的图片的实际尺寸是我使用的两倍,这意味着

**  [image size].width = imageWidth * 2  **

enter image description here

然后我使用setImageEdgeInsets函数来设置图像rect

    [btn setImageEdgeInsets:UIEdgeInsetsMake((btnHeight-titleHeight-imageHeight)/2.0,
                                              (btnWidth-imageWidth)/2,
                                              titleHeight+(btnHeight-titleHeight-imageHeight)/2.0,
                                              (btnWidth-imageWidth)/2)];

现在按钮喜欢这个

enter image description here

然后我使用setTitleEdgeInsets函数来设置标题矩形

我首先想的是代码应该是:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, 0, 0, 0)];

但按钮实际上喜欢这个

enter image description here

我也尝试代码:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, -imageWidth, 0, 0)];

按钮现在喜欢这个

enter image description here

然后我尝试代码:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(btnHeight-titleHeight, -imageWidth*2, 0, 0)];

它有效!

enter image description here

但我现在很困惑!为什么标题的左边插图应该是否定的?为什么它与图像的宽度有关?

0 个答案:

没有答案