dynamic underline

同一條底線,可以在不同的文字下面遊走。這個例子只用到 @State 變數,並沒有用到 PreferenceKey。

  • 在 Text 上面覆蓋 (overlay) 一個「透明的按鈕」,按下後會回報自己的 frame 給 parent view 的 @State 變數 (buttonFrame),parent view 再根據這個資料去更新底線的位置。

  • 因為這個例子是按下按鈕後,才會通知 parent view 做更新,並不是一開始佈局 (layout) 的時候就需要決定底線的位置,所以並不需要用到 🅿️ PreferenceKey

  • 當然,這個例子也可以用像「💈 動態框線」一樣的方法,一開始佈局的時候就把所有 Text 的 frame 全部記錄下來 (這時就要用到 🅿️ PreferenceKey),然後再動態決定底線的位置。

Last updated