使UIButton背景图像大于框架
问题描述:
我试图使UIButton
带有背景图像,其中图像大于按钮框架。使UIButton背景图像大于框架
的问题是,在UIButton
会自动调节以适应图像,并没有找到一种方法来改变行为。
我是否错过了一些显而易见的东西,或者是时候制作一个自定义按钮了?
答
看起来像这个答案是。不可能通过UIButton
上的现有接口。
实现最简单的方法似乎是使用自定义子类的UIButton
和创建与相同的帧UIButton
一个UIImageView
,关闭剪裁和缩放,然后就捕获所有setBackground
方法和捕捉状态的变化来处理“正常”按钮交互改变背景图像。
答
子类的UIButton并重写
- (CGRect)backgroundRectForBounds:(CGRect)bounds;
方法,以便它返回你想要的大小。
提示:使用此方法也可以将背景居中。
为什么不只是让按钮框架的图像大小? – bobnoble
下面是一个答案的比喻。图像拼图。它们不是正方形的,并且完美地组合在一起,但是你不能很好地将按钮设置为围绕该片的最外部点的正方形,否则将会出现重叠的按钮。你会想让你按钮成为这件作品的主体,并让这些小奇怪的东西垂在边缘。 – DBD
现在我明白了......只是在'UIImageView'的顶部覆盖一个'隐形'按钮,显示您的大图像。该按钮可以是适当的尺寸以防止与其他按钮重叠/干扰。 – bobnoble