Closed WOHANGO closed 2 years ago
原本这个方法就是预期可能返回 nil 的,QMUISlider
在 didAddSubview:
里做了保护,在 thumbView
真正被添加到界面上后,再更新一次它的样式。
但在 iOS 14 里,UISlider
的内部层级发生改变,subviews
不是直接加到 UISlider
里了,而是加到 _UISlideriOSVisualElement
内:
所以 QMUISlider
以前的 didAddSubview:
的保护逻辑就失效了。
鉴于 QMUISlider
的设计思路比较陈旧,因此后续将会重构它,这里暂不给出临时的解决方式。
UIImageView *thumbView;
UIView *_UISlideriOSVisualElement = slider.subviews.lastObject;
if ([_UISlideriOSVisualElement isKindOfClass:UIImageView.class]) {
thumbView = (UIImageView *)_UISlideriOSVisualElement;
}else{
thumbView = _UISlideriOSVisualElement.subviews.lastObject;
}
Bug 表现 QMUISlider.m 中,这个方法对iOS14已经失效
预期的表现 可以拿到“thumbView”,暂无解决方法
其他信息