UIButton背景图像偏移

gab*_*nus 7 offset uibutton ios

有没有办法为UIButton背景图像添加某种偏移?

我有一些自定义背景图片UIButton.这些图像在有效按钮区域周围有5像素阴影区域.当我使用这些图像时,我必须移动标题标签,调整框架并进行一些计算以正确放置按钮.

理想情况下,我想在该图像(或者)上设置类似偏移(x = -5px,y = -5px)的东西,UIButton这样当我将图像作为背景分配给UIButton时,它会被水平移动该偏移量.垂直.

在html中,我会在按钮div上设置固定大小,然后通过指定background-position来偏移背景图像.

iOS有类似的东西吗?

gab*_*nus 13

设置setTitleEdgeInsets:setImageEdgeInsets:似乎并不具有任何影响背景的图像UIButton,但只有在图像(和标题).

我最终覆盖-(CGRect)backgroundRectForBounds:(CGRect)bounds了我需要的量(在我的情况下为5)给边界矩形充气的地方.


smi*_*Bot 12

这是一个老问题,但我认为答案可能更好.一种方法是获取按钮,然后抓住它的图像.所以,如果你在IB中设置按钮,它可能在objc中看起来像这样:

UIImage *i = [self.button backgroundImageForState:UIControlStateNormal];

如果你在代码中做到了,那么你已经有了这些东西!

然后你想设置你的对齐矩形来调整差异.

i = [i imageWithAlignmentRectInsets:UIEdgeInsetsMake(0, 0, -5, -5)];

(上,左,下,右).

现在重新设置按钮图像.

[self.button setBackgroundImage:i forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

自动布局使用对齐方式来排列.您可能必须更改对齐上的某些常量以进行微调.