这种逻辑麻烦的操作,极力建议使用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状态...
我再也想不出别的办法了,救救我。。。。
网友评论