【问题标题】:How to change background image on a button , iOS?如何更改按钮上的背景图像,iOS?
【发布时间】:2012-07-13 06:28:59
【问题描述】:

我在视图控制器上创建了一个具有预定义背景图像的按钮。我为这个按钮创建了一个动作和一个出口。我想在用户点击按钮时更改此按钮的背景图像。我怎样才能做到这一点? 我尝试在按钮的操作方法中添加如下内容:

snapshotCheckbox.image = [UIImage imageNamed:@"snapshot.png"];

但我猜这个方法是针对 UImageViews 的。我怎样才能为按钮做同样的事情? 非常感谢您阅读我的帖子:D

【问题讨论】:

    标签: objective-c ios image uibutton


    【解决方案1】:

    一个按钮有两个propertiesimagebackgroundImage..

    setting image使用

    button.currentImage = image (or) 
    [button setImage:image   ForState:UIControlStateNormal];
    

    setting backgroundImage使用

    button.currentBackgroundImage = image (or) 
    [button setBackgroundImage:image  ForState:UIControlStateNormal];
    

    【讨论】:

      【解决方案2】:

      要在按钮上设置图像,只需在 Main.storyboard 中按您想要图像的按钮,然后在右侧的 实用程序 栏中,按属性检查器并将背景设置为您想要的图像!确保您在左侧的支持文件中有您想要的图片。

      【讨论】:

        【解决方案3】:

        您可以在 viewDidLoad 中为按钮的给定状态设置图像:

        [myButton setBackgroundImage:[UIImage imageNamed:@"myBackgroundImage.png"] forState:UIControlStateHighlighted];
        

        【讨论】:

        • 这也能解决问题吗?例如它会根据分辨率加载 myBackgroundImage@2x.png 吗?
        • UIImage imageNamed 文档:在运行 iOS 4 或更高版本的设备上,如果设备的屏幕比例为 1.0,则行为相同。如果屏幕的比例为 2.0,则此方法首先搜索具有相同文件名并附加@2x 后缀的图像文件。例如,如果文件名是 button,它首先搜索 button@2x。如果找到 2x,则加载该图像并将返回的 UIImage 对象的 scale 属性设置为 2.0。否则,它会加载未修改的文件名并将 scale 属性设置为 1.0。
        【解决方案4】:

        首先将按钮的类型设置为

        button = [UIButton buttonWithType :UIButtonTypeCustom];
        

        然后使用

         [button setImage:[UIImage imageNamed:@"imagename.type"]   ForState:UIControlStateNormal];
        

        【讨论】:

          【解决方案5】:

          设置按钮

          如果您在点击时需要图片

          [snapshotCheckbox setImage:[UIImage imageNamed:@"snapshot.png"]  forState:UIControlStateHighlighted];
          

          或者如果你想要选择后的图片

          [snapshotCheckbox setImage:[UIImage imageNamed:@"snapshot.png"] forState:UIControlStateSelected];
          

          在那个 onclick 功能上提到 作为

          snapshotCheckbox.Selected=YES;
          

          【讨论】:

            【解决方案6】:

            一种解决方案是在UIImageView 中显示图像,并在 UIImageView 顶部放置一个透明的 UIButton。在 Interface Builder 中,您可以将 UIButton 更改为“自定义”。 这将允许您在处理按下 UIButton 时触发的操作时轻松更改 UIImageView 中显示的图像。

            希望这会有所帮助。

            【讨论】:

              【解决方案7】:

              您在按钮对象上有setBackgroundImage:forState: 方法。请参阅Setting an image for a UIButton in code 了解更多信息(秒回答)。

              此外,如果您将图像设置为 UIControlStateHighlighted 状态,UIButtons 会在按下时自动更改图像(尽管只有在用户持续按下按钮时)。

              【讨论】:

                猜你喜欢
                • 2011-02-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-09-07
                • 2016-07-12
                • 2023-03-10
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多