iOS UISlider自定义样式详解
iOS 的 UISlider 控件自带样式虽然够用,但想让界面更有范儿,自定义一下还是挺有必要的。轨道、滑块这些细节一改,整体质感立马就不一样了。
轨道的自定义可以从两张图入手,用setMinimumTrackImage:forState:
和setMaximumTrackImage:forState:
替换默认轨道,渐变、纹理都能加上去,样子立马不普通。
滑块部分比较关键,用setThumbImage:forState:
直接换图就行了。还可以通过thumbRectForBounds:trackRect:value:
微调位置和大小,调得顺手又顺眼。
iOS 14 开始,setValueIndicatorImage:forState:
还能加自定义的数值提示图标,虽然用得不多,但做进阶交互时挺加分的。
事件监听用addTarget:action:forControlEvents:
就行,不复杂。想搞点动画?配合layoutSubviews
加点 Core Animation,效果出来了。
如果你对滑动的节奏要求高,比如想让它更顺或者调节更精细,可以改setValue:animated:
方法,自定义滑动行为。
文末这段代码直接贴上了用法,简单明了:
let minimumTrackImage = UIImage(named: "min_track")
let maximumTrackImage = UIImage(named: "max_track")
slider.setMinimumTrackImage(minimumTrackImage, for: .normal)
slider.setMaximumTrackImage(maximumTrackImage, for: .normal)
let thumbImage = UIImage(named: "thumb")
slider.setThumbImage(thumbImage, for: .normal)
slider.addTarget(self, action: #selector(sliderValueChanged(_:)), for: .valueChanged)
哦对了,文章里提到的“UISlider 教程 3”压缩包,估计图和代码都齐全了,用起来更方便。如果你正好在做 iOS 的 UI 细节优化,可以花点时间玩一玩。
UISlider自定义3.zip
预估大小:19个文件
UISlider教程3
文件夹
UISlider教程Tests
文件夹
UISlider教程Tests-Info.plist
691B
UISlider__Tests.m
647B
en.lproj
文件夹
InfoPlist.strings
45B
UISlider教程
文件夹
main.m
343B
FKAppDelegate.m
2KB
FKViewController.h
221B
40.22KB
文件大小:
评论区