Swift Practice # 169 Sliders(RangeSlider) in SwiftUI 範圍Slider與CloseRange

Dogpa Chen
Aug 9, 2022

上一篇完成了針對指定資料進行搜尋的功能,也使用兩種不同的方式進行搜尋。

而這篇則要處理side project遇到的一個問題,也就是在slider內使用範圍的參數,一般的slider都只能拉到單一個位置上,也就是只有一個值,而自己side project則要能夠在一個slider內拉出兩個點的範圍,簡單來說就是一般交友軟體常見的年紀範圍的slider,但目前原生似乎沒有這個slider可以使用,所以我就將目光放到了網路上,有在yt看到製作客製化的RangeSlider,但對應不同的機型也是會遭遇到的下一個關卡,所以再透過其他搜尋看到網路上有人已經完成套件可以使用,非常簡單方便。

其中也有針對單純的slider再客製化的方法,但這裡著重在RangeSlider上,首先透過Xcode>專案名稱>Project>Package Dependencies加入上述網址來完成加入套件的功能。若是不知道如何透過SPM安裝可以找下方的參考資源研究。

接著就在程式碼import Sliders並嘗試建立一個RangeSlider

可以看一下實際的執行過程

而範例使用到的也是在這個套件分享中看到的使用Type ClosedRange<Double>其實在一般的Random函數或是for迴圈都很常看到,但並不理解這樣能獨立成一個Type來使用,如果要取得範圍得最小值與最大值就透過

.lowerBound
.upperBound

來取得,但這個套件可以發現到一個小狀況是在值拉到最小時圓點不會在最左邊而留有一點空間,另外Slider綁定的CloseRange要透過Double或Float來使用,若是要真的使用特定的值類似0–100需要再自己去乘開使用。在這裡將目前多發現的一個套件與功能分享給大家。持續加油!!

參考資源:

--

--