Closed ly415925488 closed 2 years ago
你是想表达什么...是希望 QMUI 处理还是单纯分享一个发现?
你描述的不是“问题”,系统设计如此——当一个 button 处于 selected 状态时,它的高亮会命中 (UIControlStateSelected|UIControlStateHighlighted)
,而不是 UIControlStateHighlighted
,所以你确实需要专门为你的按钮的 (UIControlStateSelected|UIControlStateHighlighted)
设置一些特有的 image/title。像 checkbox 之类的东西都是要这么处理的。
正因为不是问题 所以我提的只是个建议 你们不是用自己的adjustsButtonWhenHighlighted接管了系统的属性吗 能不能顺带也处理一下这种叠加的状态 O(∩_∩)O
这个不太合适哦,adjustsButtonWhenHighlighted 的默认行为是改 alpha,alpha 严格意义上不属于按钮的“内容”,所以框架层面自动去修改,影响不大。但按你的预期,就要改到 image/title/titleColor/...,这些属于按钮的“内容”,自动去修改它的行为,始终存在某些场景下是不符合预期的,无法很好去猜测开发者的目的。所以这里不会这么处理。
从normal到selected中间会经过highlighted 但是从selected回到normal的时候 貌似是selected | highlighted 两者的叠加态 adjustsButtonWhenHighlighted = NO 或者 adjustsImageWhenHighlighted = NO 无法解决这种问题 [button setImage:@"image" forState:UIControlStateSelected | UIControlStateHighlighted]; 只有这种方法才可以解决(ps:貌似系统的按钮也有这种问题) https://user-images.githubusercontent.com/17976231/164165431-9ca117c2-aa60-4b9f-a00b-d7e9bc27f778.mp4