繁体   English   中英

UIButton backgroundImage与图像

[英]UIButton backgroundImage versus image

我有试图将图像设置为AspectFit的UIButtons。 但是,使用情节提要板时遇到了一些困难,我将UIButton子类化,并以编程方式将按钮的imageViews设置为ScaleAspectFit

#import "UIButtonWithImageAspectFit.h"

@implementation UIButtonWithImageAspectFit

-(void)awakeFromNib{
    [self.imageView setContentMode:UIViewContentModeScaleAspectFit];
}

@end

这样效果很好,按钮图像显示效果很好。

但是,现在我需要以编程方式交换按钮的图像,所以我尝试了:

[_firstLetterButton setImage:[UIImage imageNamed:@"2CeadLitir.png"]];

但这不起作用,因此根据这里的建议我必须使用:

[_firstLetterButton setBackgroundImage:[UIImage imageNamed:@"2CeadLitir.png"] forState:UIControlStateNormal];

这会将图像作为backgroundImage添加到按钮。 现在,我必须在按钮中显示图像。

  1. 可以很好地缩放为按钮的图片属性,
  2. 另一个不能很好地缩放为后面显示的背景图像。

因此,我返回了UIButton UIButtonWithImageAspectFit的子类,并尝试对其进行更改,以便它设置backgroundImage的contentMode而不是image

但是它似乎没有我可以访问的backgroundImage属性,但是根据文档,它确实具有

currentBackgroundImage
 Property

但是,我不能在该currentBackgroundImage上使用相同的方法setContentMode

任何想法如何解决这个问题?

您需要考虑从Apple网站上获得的插图。 在此处输入图片说明

它来自Buttons教程 特别是:


一个按钮具有四种状态来配置外观-默认,突出显示,选中和禁用。 和形式

UIButton类参考

讨论区
通常,如果未为状态指定属性,则默认值为使用UIControlStateNormal值。 如果未设置UIControlStateNormal值,则该属性默认为系统值。 因此,至少应设置正常状态的值。

以下是有关不同UIControlState的信息:

对于初学者iOS开发人员,必须阅读所有这些链接。

实际上,UIButton有一个方法

- (void)setImage:(UIImage *)image
        forState:(UIControlState)state

所以我要做的就是在UIButton而不是UIButton.imageView上设置图像时设置状态

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM