使UIButton背景图像大于框架

问题描述:

我试图使UIButton带有背景图像,其中图像大于按钮框架。使UIButton背景图像大于框架

的问题是,在UIButton会自动调节以适应图像,并没有找到一种方法来改变行为。

我是否错过了一些显而易见的东西,或者是时候制作一个自定义按钮了?

+0

为什么不只是让按钮框架的图像大小? – bobnoble

+0

下面是一个答案的比喻。图像拼图。它们不是正方形的,并且完美地组合在一起,但是你不能很好地将按钮设置为围绕该片的最外部点的正方形,否则将会出现重叠的按钮。你会想让你按钮成为这件作品的主体,并让这些小奇怪的东西垂在边缘。 – DBD

+0

现在我明白了......只是在'UIImageView'的顶部覆盖一个'隐形'按钮,显示您的大图像。该按钮可以是适当的尺寸以防止与其他按钮重叠/干扰。 – bobnoble

看起来像这个答案是。不可能通过UIButton上的现有接口。

实现最简单的方法似乎是使用自定义子类的UIButton和创建与相同的帧UIButton一个UIImageView,关闭剪裁和缩放,然后就捕获所有setBackground方法和捕捉状态的变化来处理“正常”按钮交互改变背景图像。

子类的UIButton并重写

- (CGRect)backgroundRectForBounds:(CGRect)bounds; 

方法,以便它返回你想要的大小。

提示:使用此方法也可以将背景居中。