UIButton:



这种逻辑麻烦的操作,极力建议使用reactiveCocoa这个框架。响应式编程~~~kvo实现https://github.com/ReactiveCocoa/ReactiveCocoa 首页就有能解决的方案


_awardDisplayBtn.tintColor = [UIColor whiteColor];

像这种问题一般点进去看一下它有提供什么方法,查找一下关键字color就大概知道是哪个了。予人鱼,予人渔

††††

谢谢你的回答 但是你的观点我确实不这么认为
首先 这个逻辑一点都不乱 很多地方会用到类似的功能 都是用这种方法或者用title或者用image
如果文字的显示不用button来做 那是不是button的title你觉得就是没有必要的了呢
你说的在button上加一个label 这个方法还不如点击的时候直接对之前的button设置normal状态下的颜色 但是肯定不够好 不然苹果也没必要弄一个selected状态你说对不对

ˇˇˇˇˇ†††††
个人建议不要文字的显示不要用button来做了,这样太逻辑太乱了,你可以在每个button上面添加一个uilabel,记录现在选中的是哪个,点击别的时候把之前选中的置为白色就行了。然后把选中的置为红色。



看了本帖受益匪浅,解决了我最近的疑问,原来按钮的selected 和enabled 是并行状态,我还想实现按钮被选中了再让它不能执行点击,看来是不可以的,感谢感谢!!!!



谢谢你的回答 但是你的观点我确实不这么认为
首先 这个逻辑一点都不乱 很多地方会用到类似的功能 都是用这种方法或者用title或者用image
如果文字的显示不用button来做 那是不是button的title你觉得就是没有必要的了呢
你说的在button上加一个label 这个方法还不如点击的时候直接对之前的button设置normal状态下的颜色 但是肯定不够好 不然苹果也没必要弄一个selected状态你说对不对


UIButton在处于selected的情况下点击的问题

实在想不出了,来所以来问问各路大神是否有遇到过这样的问题:

我想实现的功能:

有几个按钮,titleColor都是白色(有一个默认的红色),点击任意一个按钮title变红色并保持,其他按钮都是白色,

以此类推,每点击另一个按钮,就变成红色,前一个红色按钮变回白色

我实现的方法:setTitleColor:forState:

在uicontrolStateNormal 和selected 两种状态下分别setTitleColor为白色和红色

每次点击的时候把这个按钮的isSelected设为yes 其他设为no

我存在的疑问:

正常操作下,我想要的功能可以实现,但是,

当我当前选中的按钮为buttonA时,再点击这个按钮buttonA,

按钮的颜色会在点击的时候变回白色,松开鼠标又变回了红色

我尝试过的方法:

在网上找了一下,很多都是说用图片作为button背景的时候,可以用这种方法:

[btn setBackgroundImage:(UIImage*) forState:UIControlStateSelected | UIControlStateHighlighted];

于是我仿造着试用了一下:

[btn setTitleColor:[UIColor redColor] forState:UIControlStateSelected | UIControlStateHighlighted];

证实这种方法是不行的

我又单独写了两句

[btn setTitleColor:[UIColor redColor] forState:UIControlStateSelected ];

[btn setTitleColor:[UIColor redColor] UIControlStateHighlighted];

还是不行

加上一句

[btn setTitleColor:[UIColor redColor] UIControlStateHighLighted];

也不行

似乎 button 在处于selected的情况下 再点击 点击的瞬间是normal状态...

我再也想不出别的办法了,救救我。。。。

你可能感兴趣的:(UIButton:)