Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案
http://qmuiteam.com/ios
Other
7.05k stars 1.37k forks source link

UISlider+QMUI使用,qmui_step赋值和qmui_stepDidChangeBlock的实现先后顺序,会影响qmui_stepDidChangeBlock的调用 #1413

Closed MainByElse closed 1 year ago

MainByElse commented 2 years ago

Bug 表现 UISlider+QMUI qmui_numberOfSteps大于2,默认选中step非0的选项,此时第一次选中step为0选项时,qmui_stepDidChangeBlock回调未被调用

原因: 使用时,先赋值qmui_step,再实现qmui_stepDidChangeBlock改变回调时,此时选择step为0的选项,qmuisl_handleValueChanged方法中qmuisl_precedingStep和step此时都为0,所以未执行监听block,导致qmui_stepDidChangeBlock回调未调用

截图 1、赋值代码 image 2、UISlider+QMUI中点击step为0选项时 image

如何重现

  1. 先赋值qmui_step > 0的值
  2. 再实现qmui_stepDidChangeBlock回调
  3. 此时选中step为0的选项,qmui_stepDidChangeBlock未被调用

预期的表现 qmui_step的赋值和qmui_stepDidChangeBlock的实现先后顺序,应该不影响qmuisl_handleValueChanged方法中的判断

目前先实现qmui_stepDidChangeBlock,再赋值qmui_step即可避免这个问题

其他信息

MoLice commented 2 years ago

下个版本会修复该问题,在此之前可以先用以下文件替换你本地的同名文件: UISlider+QMUI.m.zip

MoLice commented 1 year ago

已发布 4.5.0 修复该问题。