1

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

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

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

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

在此处输入图像描述

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

    [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)];

很有效!

在此处输入图像描述

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

4

0 回答 0