RGBullsEye后续
SwiftUI自带的Slider的可操作内容比UIkit的UISlider要少一些,可以在SwiftUI中使用UISlider,用其替换Slider。
在之前的 工程中新建SwiftUI View文件 iOS ▸ User Interface ▸ SwiftUI View,命名为ColorUISlider。
替换文档自带的strut ColorUISlider: View{}为
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627100459552.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)
添加变量
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627100727645.png)
为了在上下视图间传递数据,需要引入以下类,放置于func updateUIView之下即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627102111828.png)
之后加入函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627102349487.png)
当调整Slider,Value变化时,为上级视图赋值,在class中添加objcet-c函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627102703429.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)
修改updateUIView函数,响应数值变化
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062710311231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)
配置makeUIView函数,根据需要,修改UISlider各种参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062710321158.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)
此时可以观看预览视图,可见
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627103315519.png)
没有使用背景颜色,但是UISlider的thumbTint为红色,已划过部分也为红色。
接下来可以在ContentView中调用该视图了。
为了复用代码,首先在ContentView中,新建视图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627103610534.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)
替换原来调用的NewColorSlider为
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627103753756.png)
编译后,在预览视图中调试即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200627103847223.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2t3c2Q=,size_16,color_FFFFFF,t_70)