将imageView设置为UIViewContentModeScaleAspectFill的UIButton不会完全填充小图像

时间:2014-12-11 21:58:36

标签: ios cocoa-touch uiview uiimageview uibutton

我的应用中有一个UIButton,而不是文字我给它一个图像,因为它作为缩略图按钮服务,在点击时会显示完整的图像。

我看到this answer似乎已经接受了这个实现,但是图片视图小于按钮本身,图像视图实际上并不像contentMode那样填充按钮,或者像图像视图一样,如下图所示:

enter image description here

正如您所看到的,使用图像视图可以正常展开,但是按钮则没有。 (按钮背景设置为蓝色,因此您可以看到它未显示的位置。)

我正在做的代码很简单:

myButton.setImage(UIImage(named: "pokemon"), forState: .Normal)
myButton.imageView!.contentMode = .ScaleAspectFill

如何更改它以使其正确填充?

示例项目: http://cl.ly/0z2T1A1Z3v3m

2 个答案:

答案 0 :(得分:5)

contentHorizontalAlignment上设置contentVerticalAlignment.FillUIButton会使其完全展开。

答案 1 :(得分:1)

将图像设置为按钮的背景。这将填充按钮的框架,无需更改内容模式。 使用setBackgroundImage()方法将图像设置为按钮的背景。 祝你好运!

修改

选项1

如何在图片视图中使用UIImageViewUITapGestureRecognizer以及所需的contentMode呢?

选项2

将图像裁剪为按钮的大小,并将其设置为按钮的背景图像。

希望这有帮助!