将UIImage放入UIButton的简单方法

Ali*_*ice 12 iphone image aspect-ratio uibutton uiimageview

我的iPhone应用程序中有一个UIButton.我将其大小设置为100x100.

我有一个400x200的图像,我希望在按钮中显示.

按钮STILL需要保持在100x100 ...我希望图像缩小以适应...但保持正确的宽高比.

我认为这就是"Aspect Fit"的用途.

我是否使用setImage或setBackgroundImage包含我的图像?

我是否为按钮设置了AspectFit?还是形象?还是背景图片?

(我需要较小的图像来增加大小.虽然较大的图像应该是DESCREASE的大小.始终保持按钮为100x100.)

我尝试了以上所有的无数组合......而我似乎无法让所有东西同时工作:

  • 请勿将按钮的大小更改为100x100.
  • 不要破坏图像的纵横比.
  • 始终增加小图像以适合按钮.
  • 始终减小大图像以适合按钮.
  • 切勿剪辑任何图像边缘.
  • 永远不要求"将UIButtons放在你所有的UIimages上"黑客攻击.
  • 不要求每个人都只是为了使用新的框架方法而升级到v4.2.1.

我看到很多应用程序,有如此多的全功能图像按钮...我无法相信我无法弄清楚这个非常简单,非常常见的事情.

啊.

Dan*_*Ray 12

UIButton坏了.这是简短的答案.UIImageView其图像和backgroundImage属性中的s不尊重UIViewContentMode设置.他们是只读属性,而UIImage这些UIImageViews的内容可以通过设置setImage:setBackgroundImage:方法,内容模式是不可能的.

解决方案是要么在您的包中提供适当大小的图像,要么放下UIImageView,按照您希望的方式配置它,然后在其上面放置一个清晰的"自定义"UIButton.我保证,这就是你见过的那些花哨的专业应用程序.我们都必须这样做.

  • 我知道.我知道. (2认同)
  • 从iOS 6.1.3开始,他们仍然不尊重这个属性. (2认同)

Chi*_*buZ 6

UIImage *img = [UIImage imageNamed:@"yourImageName"];
button.imageView.contentMode = UIViewContentModeScaleAspectFit;
[button setImage:img forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)


War*_*ior 1

将图像视图放在按钮上,为图像视图而不是按钮设置图像。

一切顺利。

  • 我想“正确”地做到这一点,并避免破解 25 个按钮...超过 25 个图像...必须创建 50 个对象以及所有内存、维护、插座、操作等。所有强大的内置功能有什么用? - 在按钮方法中......如果每个人的解决方案都是“只是不要使用它们”??? (2认同)