iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Mobile Development

Flutter Developer Learning SwiftUI系列 第 7

Flutter Developer Learning SwiftUI. @State var lesson7 = "按鈕"

  • 分享至 

  • xImage
  •  

Today Preview

Yes

1. 正文

Button可以說是最常見跟user互動的元件了
今天介紹了Button的實現方式跟樣式
基本上可以使用兩種方式來實現

  1. Button(View) 跟 2. .onTapGesture(Modifier)
    而Button又有兩種init method
    1-1. init(_:action:) 1-2. init(action:label:)
    三個method差別就在於tap的效果
    1-1:只有text會有UI回饋
    1-2:整個View都會有UI回饋
    2:沒有UI回饋
    我們可以根據實際的需求來選擇
    這跟Flutter一樣有Button或GestureDetector是一樣的☘️☘️☘️

至於點擊按鈕切換Icon則是使用到了State
但沒有分stateful跟stateless,也不用call setState⚠️⚠️⚠️
只要將宣告的變數用@State修飾(為什麼打@沒有auto complete可以選...)
就可以在修改state的時候自動完成畫面的更新

而程式碼的最後用了一下MenuButton(可以按應該也算是Button吧...)
實現起來很簡單
而且可以無限嵌套
就一併試一下了

  1. about data

  2. about implement

  3. about style & menu

在試Menu的時候發現一個現象
原來會根據Menu的位置是在畫面的上半部或下半部
去決定選單內容的順序是正向還是逆向
這不是bug是feature XD
而且似乎沒有辦法調整
要到iOS16才有開放新的API
這點可能要注意一下


PS. code裡面沒寫到
SwiftUI如果要把Button禁用
是用.disable()
不像Flutter把function設為null⚠️⚠️⚠️

2. 對照表

Android iOS Flutter SwiftUI
Button UIButton RawMaterialButton Button
(尚未研究) UITapGestureRecognizer GestureDetector .onTapGesture

Tomorrow Preview

Yes


跨界學習系列文章

Android版:iOS Developer Learning Android. Lesson 11 - Button + Dialog (感受一下使用原生鏈式編程彈出Alert吧)
Flutter版:iOS Developer Learning Flutter. Lesson7 按鈕與對話方塊


https://github.com/mark33699/FDLS


上一篇
Flutter Developer Learning SwiftUI. @State var lesson6 = "顯示圖片"
下一篇
Flutter Developer Learning SwiftUI. @State var lesson8 = "文字輸入"
系列文
Flutter Developer Learning SwiftUI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言