最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SwiftUI學(xué)習(xí)之state和Binding的區(qū)別淺析

 更新時間:2021年03月28日 15:35:29   作者:樹下  
這篇文章主要給大家介紹了關(guān)于SwiftUI學(xué)習(xí)之state和Binding區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

@state 綁定值的狀態(tài),其屬性的修飾官方推薦使用private.上代碼(ps:這里沒用private 進行修飾,是為了演示區(qū)別)
import SwiftUI

struct FilterView: View {
// @Binding var isFavorite: Bool
 @State var isFavorite = true
 
 var body: some View {
  Toggle(isOn: $isFavorite) {
   
  }
  let buttonTitle = isFavorite ? "嘔吼" : "頓頓"
  Text(buttonTitle)
  
 }
}
struct ProductView: View {
 var titleS: String
 
 //:不想讓外部訪問的變量 需要初始化
 @State private var changeButtonTtile = true
 var body: some View {
  Button (action: {
   changeButtonTtile.toggle()
  }) {
   let buttonTitle = changeButtonTtile ? "哈哈哈" : "啦啦啦啦"
   Text(buttonTitle)
   FilterView(isFavorite: changeButtonTtile)

  }
 }
}

這里我們看到 @State  var isFavorite = true通過state 進行修飾.這個時候我們點擊FilterView的開關(guān) 我們只能刷新當(dāng)前FilterView的界面.注意這里:FilterView(isFavorite: changeButtonTtile) 初始化傳入的是changeButtonTtile的value,也就實際值.

下面我們把State注釋掉 ,打開@Bingding 那一行

import SwiftUI

struct FilterView: View {
 @Binding var isFavorite: Bool
// @State var isFavorite = true
 
 var body: some View {
  Toggle(isOn: $isFavorite) {
   
  }
  let buttonTitle = isFavorite ? "嘔吼" : "頓頓"
  Text(buttonTitle)
  
 }
}
struct ProductView: View {
 var titleS: String
 
 //:不想讓外部訪問的變量 需要初始化
 @State private var changeButtonTtile = true
 var body: some View {
  Button (action: {
   changeButtonTtile.toggle()
  }) {
   let buttonTitle = changeButtonTtile ? "哈哈哈" : "啦啦啦啦"
   Text(buttonTitle)
   FilterView(isFavorite: $changeButtonTtile)
//:注意這里的取值 變成了$
  }
 }
}

這里我們運行代碼,點擊開關(guān),你發(fā)現(xiàn)了什么??.ProductView 的UI 也發(fā)生了變化.這個時候FilterView 傳入的是changeBtnTitle的引用,而不是值.這樣你在子視圖改變@Binding修飾的值,父視圖也會跟著刷新.

使用小結(jié)

  • 當(dāng)自定義視圖的數(shù)據(jù)需要外部傳入的時候, 使用普通的屬性
  • 當(dāng)自定義的視圖需要通過數(shù)據(jù)變化更新視圖時, 對普通屬性加上@State修飾
  • 當(dāng)自定義的視圖需要將視圖的變化表現(xiàn)在數(shù)據(jù)的變化時,對普通屬性加上@Binding修飾, @Binding 包含了@State的功能, 但一般不會去對@Binding屬性做修改

總結(jié)

到此這篇關(guān)于SwiftUI學(xué)習(xí)之state和Binding區(qū)別的文章就介紹到這了,更多相關(guān)SwiftUI state和Binding區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Swift類型創(chuàng)建之自定義一個類型詳解

    Swift類型創(chuàng)建之自定義一個類型詳解

    這篇文章主要介紹了Swift類型創(chuàng)建之自定義一個類型詳解,本文講解了自定義原型、實現(xiàn)默認(rèn)值、支持基本布爾型初始化、支持Bool類型判斷、支持兼容各們各派的類型、完善OCBool的布爾基因體系等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Swift實現(xiàn)復(fù)數(shù)計算器

    Swift實現(xiàn)復(fù)數(shù)計算器

    這篇文章主要為大家詳細(xì)介紹了Swift實現(xiàn)復(fù)數(shù)計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift 3中使用FMDB遇到的問題與解決方法

    Swift 3中使用FMDB遇到的問題與解決方法

    相信大家都熟悉OC使用FMDB第三方庫,進行數(shù)據(jù)庫操作,增、刪、改、查,但最近在Swift 3中使用FMDB遇到了一些問題,下面這篇文章主要給大家介紹了關(guān)于在Swift 3中使用FMDB遇到的問題與解決方法,需要的朋友可以參考下。
    2017-07-07
  • Swift中轉(zhuǎn)義閉包示例詳解

    Swift中轉(zhuǎn)義閉包示例詳解

    在Swift 中的閉包類似于結(jié)構(gòu)塊,并可以在任何地方調(diào)用,下面這篇文章主要給大家介紹了關(guān)于Swift中轉(zhuǎn)義閉包的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 深入理解swift變量和函數(shù)

    深入理解swift變量和函數(shù)

    Swift 函數(shù)用來完成特定任務(wù)的獨立的代碼塊。這篇文章主要介紹了swift變量和函數(shù)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法

    swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法

    本篇文章主要介紹了swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • swift 3.0 正則表達(dá)式查找/替換字符的實現(xiàn)代碼

    swift 3.0 正則表達(dá)式查找/替換字符的實現(xiàn)代碼

    正則表達(dá)式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。本文重點給大家介紹swift 3.0 正則表達(dá)式查找/替換字符的實現(xiàn)代碼,需要的朋友參考下吧
    2017-08-08
  • swift在IOS應(yīng)用圖標(biāo)上添加提醒個數(shù)的方法

    swift在IOS應(yīng)用圖標(biāo)上添加提醒個數(shù)的方法

    本文是通過swift語言實現(xiàn)在應(yīng)用圖標(biāo)右上角添加消息個數(shù)提醒的功能,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-08-08
  • Swift語言中的一些訪問控制設(shè)置詳解

    Swift語言中的一些訪問控制設(shè)置詳解

    這篇文章主要介紹了Swift語言中的一些訪問控制設(shè)置詳解,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • 詳解Swift?中的幻象類型

    詳解Swift?中的幻象類型

    讓我們來看看一種技術(shù),它可以讓我們利用?Swift?的類型系統(tǒng)在編譯時執(zhí)行更多種類的數(shù)據(jù)驗證消除更多潛在的歧義來源,并幫助我們在整個代碼庫中保持類型安全,通過使用幻象類型(phantom?types),對Swift?幻象類型相關(guān)知識感興趣的朋友一起看看吧
    2022-05-05

最新評論

涟源市| 桦甸市| 林西县| 望都县| 泸定县| 彰化县| 启东市| 波密县| 湘潭市| 正蓝旗| 涞源县| 江川县| 固安县| 绩溪县| 尚志市| 漠河县| 吕梁市| 汶川县| 贡嘎县| 达日县| 万荣县| 凉城县| 仁布县| 兴城市| 浦东新区| 旬邑县| 定远县| 出国| 商洛市| 邳州市| 大田县| 图木舒克市| 亚东县| 上蔡县| 安西县| 紫云| 弥勒县| 靖远县| 万宁市| 牙克石市| 泰兴市|