【问题标题】:How to change the backgroundimage of a button programmaticaly when touching?触摸时如何以编程方式更改按钮的背景图像?
【发布时间】:2012-07-11 01:06:57
【问题描述】:

我有一个 iPhone 应用程序,我在其中使用带有背景的 IBOutlet 按钮。单击它时,我调用了一个 Web 服务,如果成功,我需要更改按钮的背景。现在我正在这样做,但什么也没发生:

UIImage *buttonImage = [UIImage imageNamed:@"follow_shop.png"];
[following setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

有人知道如何实现吗?

【问题讨论】:

    标签: iphone ios ipad background uibutton


    【解决方案1】:

    您在代码中所做的是正确的。您现在可以做三件事(按发现问题的概率递减顺序):

    1) 如果您最初设置了 imagebackgroundImage,请检查您的 IB。两者是不同的,image 高于backgroundImage(有效地将backgroundImage 渲染为隐藏)。这两者(您在 IB 和代码中设置的图像)都应该是其中之一(imagebackgroundImage)。

    2) 检查follow_shop.png 是否是正确的名称。也可以使用断点查看buttonImage是否有内存。

    3) 检查following 是否已连接到您的 IB。

    【讨论】:

    • 如果我弄错了,请纠正我,但我认为他可能还需要将按钮类型设置为自定义。不过不确定。
    • @tomi2711 你的想法是绝对正确的,但这是他的选择,与问题无关,因为他已经可以通过IB看到他的图像集!
    • 是的,但我认为如果按钮类型是圆角矩形,背景图像可能不应该。感谢您的回答!
    【解决方案2】:

    为按钮设置一个IBOutlet,并在您的IBAction 中输入此代码

    UIImage *buttonImage = [UIImage imageNamed:@"yourimage.png"];
    [myButton setBackgroundImage:buttonImage forState:UIControlStateSelected];
    

    【讨论】:

      【解决方案3】:
      1. 查看您的IBOutlet 是否连接正确(例如使用NSLog(@"%@",following);
      2. 重新添加您的图片(例如使用Copy files into destination groups folder
      3. 看看你的目标。你的头像在Copy Bundle Resources吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-12
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多