ios – UIButton – 默认状态下的图像,选定状态下的标题

ios – UIButton – 默认状态下的图像,选定状态下的标题,第1张

概述所以我正在通过iTunes U完成2013年冬季斯坦福iOS / Objective-C课程的第二次任务,最后一部分让我发疯. 这是一个卡片匹配游戏.每张卡在视图中表示为UIButton.当卡片对象面朝上时,UIButton处于选中状态,当卡片面朝下时,UIButton处于默认状态.找到匹配后,也可以禁用卡. 作业要求将图像放在卡片的背面.换句话说,每个UIButton都需要在处于默认状态时显示图 所以我正在通过iTunes U完成2013年冬季斯坦福iOS / Objective-C课程的第二次任务,最后一部分让我发疯.

这是一个卡片匹配游戏.每张卡在视图中表示为UIbutton.当卡片对象面朝上时,UIbutton处于选中状态,当卡片面朝下时,UIbutton处于默认状态.找到匹配后,也可以禁用卡.

作业要求将图像放在卡片的背面.换句话说,每个UIbutton都需要在处于默认状态时显示图像,但是当它处于选中或禁用状态时,它必须是Title属性.

看起来很简单……

首先,我在GUI(故事板)中尝试了这一点,将背景图像设置为我的图像,然后确保所选状态和禁用状态都没有图像.这导致图像显示,但随后标题文本显示在图像上.一些搜索找到了原因:除非明确告知,所以UIbutton默认所有其他UIControlStates为UIControlStatenormal.

现在我一直在努力让这个以编程方式工作,但仍然没有运气.所有作为卡的UIbutton都在IBOutletCollection中,这是一个NSArray(cardbuttons).在vIEwDIDLoad函数中,我有一个遍历所有按钮的for循环:

UIImage *cardBack = [UIImage makeSomeImage...];for (UIbutton *onebutton in cardbuttons) {[onebutton setBackgroundImage:cardBack forState:UIControlStatenormal];[onebutton setBackgroundImage:nil forState:UIControlStateSelected];}

这仍然给我同样的问题.它肯定是成功地将图像设置为默认状态,但是当我单击模拟器中的按钮时,图像保留,而标题只显示在它上面.

在GUI和编程方面,我可以得到一个不同的图像,以显示在选定和禁用状态罚款.我所要做的就是添加:

[onebutton setBackgroundImage:anotherImage forState:UIControlStateSelected];

循环和所有按钮在选择时显示其他图像.

我不能做什么,以及让我疯狂的是,在选择时试图让那里没有背景图像,以便UIbutton只显示标题……

编辑:

虽然不是一个理想的解决方案(我认为在UIbutton中使用imageVIEw属性可能会有所改变,但我不确定),我已经想出了一种有点强调的感觉方式来使这项工作.

首先,我将UIImage用于名为cardBackImage的类属性中.

然后,在每次对模型进行更改时循环遍历所有卡按钮的updateUI函数中,我添加了以下代码行:

[cardbutton setBackgroundImage:(oneCard.isFaceUp ? nil : self.cardBackImage) forState:UIControlStatenormal];

因此,每次卡片对象被“翻转”时,UIbutton必须将UIImage加载或卸载到其实例变量中. Bleh ……就像我说的那样,并不理想,但它确实有效.

解决方法 我知道这个问题已经发布很久了,但是我遇到了同样的问题,我发现 this answer到了另一个帖子. 总结

以上是内存溢出为你收集整理的ios – UIButton – 默认状态下的图像,选定状态下的标题全部内容,希望文章能够帮你解决ios – UIButton – 默认状态下的图像,选定状态下的标题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1019870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存