亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Stack?View自定義間隙減少約束的數(shù)量

 更新時(shí)間:2023年08月04日 10:43:06   作者:shiweifu  
這篇文章主要為大家介紹了Stack?View自定義間隙減少約束的數(shù)量示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

Apple 在 iOS9 引入了 StackView,使用它可以減少約束的數(shù)量,讓使用 AutoLayout 更加容易。但有一種邊界使用場景是需要自定義視圖之間的間隙。這種情況可以使用嵌套布局的方式來解決,但解決方案有些復(fù)雜。在 iOS 11 中給出了解決方案,你可以在 StackView 中自定義視圖之間的間隙。

問題描述

這是我想創(chuàng)建的布局:

如圖所示,共有5個(gè) Label。最上面的大字 Label,中間三個(gè)標(biāo)準(zhǔn) Label,以及最下面的小字 Label。中間三個(gè) Label 的間隙是 8pt,最上面和最下面的兩個(gè) Label 的間隙是 32pt。

UIStackView 在相等距離垂直分配視圖的情況下工作的很好。通過設(shè)置 StackView 的間隙屬性,每個(gè)子視圖的間隙是相等的。

Stacking Stacks

使用內(nèi)嵌 StackView 的方式實(shí)現(xiàn)布局。

Inner StackView 包含三個(gè) Label,8pt 的間隙,外部 StackView 有 32pt 的間隙。這看起來能工作,實(shí)則可能是引入了麻煩。比如我想 header 和 footer 的間隙不一樣,這就很麻煩。

自定義間隙(iOS 11)

在 iOS 11中,給某個(gè) stackView 中的元素自定義間隙成為可能。假設(shè)我們已經(jīng)構(gòu)建好一個(gè) stackView:

let stackView = UIStackView(arrangedSubviews: [headerLabel, topLabel, middleLabel, bottomLabel, footerLabel])
stackView.axis = .vertical
stackView.alignment = .fill
stackView.spacing = 8.0

stackView 中的每個(gè)元素間隙是8pt。想要自定義header 標(biāo)簽和 footer 標(biāo)簽的間隙,可以直接調(diào)用 iOS11 的方法設(shè)置:

// iOS 11 only
stackView.setCustomSpacing(32.0, after: headerLabel)
stackView.setCustomSpacing(32.0, after: bottomLabel

說明:

  • 你可以指定某個(gè) stackView 子元素之后的間隙,但是目前沒有方法指定之前的間隙。
  • 在 InterBuilder 中,你無法設(shè)置自定義間隙。只能在代碼中完成。
  • 當(dāng)你 從 stackView 中移除元素,系統(tǒng)自動(dòng)移除自定義間隙。

標(biāo)準(zhǔn)間隙和默認(rèn)間隙

UIStackView 在 iOS 11中增加了兩個(gè)新屬性,定義了系統(tǒng)間隙和默認(rèn)間隙的值:

class let spacingUseDefault: CGFloat
class let spacingUseSystem: CGFloat

這兩個(gè)屬性的值是由系統(tǒng)保存和定義的,使用的時(shí)候不要直接保存他們的返回值。系統(tǒng)間隙似乎返回8pt,還是再強(qiáng)調(diào)一下,使用的時(shí)候應(yīng)該直接訪問這兩個(gè)屬性而不是保存他們的值。

你可以用這兩個(gè)屬性設(shè)置或者恢復(fù)自定義的間隙。

將系統(tǒng)間隙的值設(shè)置給最上面的 label:

stackview.setCustomSpacing(UIStackView.spacingUseSystem, after: topLabel)

恢復(fù) stackView 元素的間隙(移除自定義的間隙):

stackview.setCustomSpacing(UIStackView.spacingUseDefault, after: topLabel)

譯者注:

在設(shè)置了 stackView 的 spacing 值為5,設(shè)置 customSpacing 的值為10,然后界面調(diào)整了,想把自定義間隙恢復(fù)為5,那么這時(shí)只能調(diào)用 setCustomSpacing 將值設(shè)置為 spacingUseDefault,如果設(shè)置為0,將干掉所有的間隙。這是我理解的 spacingUseDefault 使用場景。

翻譯自:https://useyourloaf.com/blog/...

以上就是Stack View自定義間隙減少約束的數(shù)量的詳細(xì)內(nèi)容,更多關(guān)于Stack View自定義間隙的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • IOS 粒子系統(tǒng) (CAEmitterLayer)實(shí)例詳解

    IOS 粒子系統(tǒng) (CAEmitterLayer)實(shí)例詳解

    這篇文章主要介紹了IOS 粒子系統(tǒng) (CAEmitterLayer)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • iOS實(shí)現(xiàn)獲取系統(tǒng)iTunes音樂的方法示例

    iOS實(shí)現(xiàn)獲取系統(tǒng)iTunes音樂的方法示例

    這篇文章主要給大家介紹了關(guān)于iOS如何實(shí)現(xiàn)獲取系統(tǒng)iTunes音樂的相關(guān)資料,文中通過示例代碼給大家詳細(xì)介紹了實(shí)現(xiàn)的方法,并給大家介紹了MPMediaPickerController的相關(guān)知識(shí),對(duì)大家的學(xué)習(xí)或者工作具有一定的幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS開發(fā)中使用屏幕旋轉(zhuǎn)功能的相關(guān)方法

    iOS開發(fā)中使用屏幕旋轉(zhuǎn)功能的相關(guān)方法

    這篇文章主要介紹了iOS開發(fā)中使用屏幕旋轉(zhuǎn)功能的相關(guān)方法,包括Transform變化矩陣原理的講解,需要的朋友可以參考下
    2015-09-09
  • iOS 圖片加載框架SDWebImage解讀

    iOS 圖片加載框架SDWebImage解讀

    本篇文章主要介紹了iOS 圖片加載框架SDWebImage解讀,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Android開發(fā)筆記之簡單基站定位程序的實(shí)現(xiàn)

    Android開發(fā)筆記之簡單基站定位程序的實(shí)現(xiàn)

    這篇文章主要介紹了Android開發(fā)筆記之簡單基站定位程序的實(shí)現(xiàn),詳細(xì)的介紹了基站定位其實(shí)很簡單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • iOS開發(fā)之Quartz2D的介紹與使用詳解

    iOS開發(fā)之Quartz2D的介紹與使用詳解

    什么是Quartz2D?Quartz 2D是一個(gè)二維繪圖引擎,同時(shí)支持iOS和Mac系統(tǒng)。下面這篇文章主要介紹了iOS開發(fā)之Quartz2D的介紹與使用的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS開發(fā)之通過銀行卡號(hào)獲取所屬銀行名稱

    iOS開發(fā)之通過銀行卡號(hào)獲取所屬銀行名稱

    本文給大家分享一段代碼關(guān)于ios通過銀行卡號(hào)獲取所屬銀行名稱,代碼簡單易懂,在項(xiàng)目開發(fā)中經(jīng)常會(huì)遇到這樣的功能,需要的朋友一起學(xué)習(xí)吧
    2016-11-11
  • iOS11新特性之在你的APP中使用LargeTitle

    iOS11新特性之在你的APP中使用LargeTitle

    本篇文章主要介紹了iOS11新特性之在你的APP中使用LargeTitle,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解2016 cocoapods的安裝和使用以及版本升級(jí)遇到的問題

    詳解2016 cocoapods的安裝和使用以及版本升級(jí)遇到的問題

    CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫的工具。這篇文章主要介紹了2016 cocoapods的安裝和使用以及版本升級(jí)遇到的問題,有需要的可以了解一下。
    2016-12-12
  • iOS在固定的label上動(dòng)態(tài)顯示所有文字

    iOS在固定的label上動(dòng)態(tài)顯示所有文字

    這篇文章給大家主要介紹了iOS中如何實(shí)現(xiàn),在固定的label上動(dòng)態(tài)顯示所有文字的方法,文中給出了示例和思路,對(duì)大家的理解很有幫助,感興趣的朋友們下面來一起看看吧。
    2016-10-10

最新評(píng)論