亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Xcode 6中的童話板中的“限制頁邊距”是什么?

Xcode 6中的童話板中的“限制頁邊距”是什么?

MM們 2019-07-22 10:28:43
Xcode 6中的童話板中的“限制頁邊距”是什么?我正在使用autolayout和約束,并發現有一個Constrain to margins選項在Xcode 6中,該選項在Xcode 5中不存在,并在默認情況下被選中。我創建了一個測試項目,然后添加了一個UITableView在框架設置為與視圖大小相同并添加約束的ViewController上Xcode 6您可以在這里看到,盡管tableview具有與視圖Xcode建議添加16作為約束的相同的框架,而Xcode 5則建議添加間距0。現在,當您取消選中“約束到邊距”選項時,它的行為與xcode 5相同,并建議添加0作為約束。此外,我發現,一旦我添加約束,約束到邊距檢查,我就不能再打開Xcode 5中的故事板文件,所以它肯定是Xcode 6中的新東西。希望我能恰當地解釋我的問題。我想了解“限制保證金”實際上做了什么,我應該和不應該使用它。如果這件事很簡單很明顯的話,我真的很抱歉。編輯我在在這里討論我想知道這是否與此有關。
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

我完全不明白為什么人們會抱怨在iOS 8之前,利潤率會直接導致崩潰。"

在xIB文件或故事板中設置相對于邊距的約束。讓你的應用程序在iOS 7上崩潰在iOS 7設備上也不能改變UI,只要您不碰UIView.layoutMarginsUIView.preservesSuperviewLayoutMargins屬性在代碼中。

iOS 8中的利潤率是多少?

布局邊距表示在內部一種UIView布局系統在布局子視圖時可以使用-以確保在視圖和子視圖的邊緣之間留下空白。在這方面,它非常類似于CSS中與塊關聯的填充屬性。

默認情況下,UIView每邊有8個點的布局邊距,這是不能更改的。接口生成器..但是,通過設置UIView.layoutMargins屬性(僅在iOS 8上可用),您可以調整這些值。

您可以讓IB顯示邊距編輯器>畫布>顯示布局矩形: 

邊距可用于幫助布局視圖和子視圖。每一,每個UIView默認情況下附帶邊距,但它們僅在設置與頁邊距相關的約束時才會影響視圖位置。

如何使用邊距

在InterfaceBuilder中使用邊距的唯一方法是檢查相對于保證金選項,同時配置約束。這就是如何將約束定向到在布局我的視圖時,使用邊距而不是邊緣。

讓我們看一看在視圖和子視圖之間設置主導約束的四種不同方法。對于每個約束,我們將檢查描述的第一個關聯將是子視圖的領導,以及第二個將是SuperView的領導..您要密切注意的是相對于保證金選項,因為這定義了約束是綁定到視圖的邊距還是邊緣。

  1. 第一項(取消檢查),第二項(檢查):在本例中,我們聲明子視圖的左側邊緣應該與SuperView的左邊對齊(如此圖像所示)。
  2. 第一項(取消檢查),第二項(取消檢查):都使用邊緣,

    無保證金

    ..在本例中,我們聲明子視圖的左側邊緣應該與SuperView的左側邊緣對齊。
  3. 第一項(檢查),第二項(取消檢查):在本例中,我們聲明子視圖的左邊框應該與SuperView的左側邊緣對齊。這種布局實際上使子視圖與SuperView重疊。
  4. 第一項(檢查),第二項(檢查)。這實際上具有與案例2相同的效果,因為子視圖和SuperView都有相同的默認邊距。我們宣布子視圖的左邊距應該與SuperView的左邊距對齊。

利潤率的好處是什么?

這個新特性(IOS 8)只有在您決定使用利潤率時才會影響UI開發。

通過使用邊距,您可以通過更改單個屬性的值來調整與共享的超級視圖共享公共關系的多個子視圖的位置。這明顯優于使用固定值設置所有相關約束,因為如果您需要更新所有的間距,而不是一個地更改每個值,您可以通過使用像下面這樣的一行代碼更新SuperView的邊距來同時修改所有相關的位置:

self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);

為了說明這個好處,在下面的情況下,所有子視圖的左邊沿對齊了他們的SuperView的左邊。因此,更改SuperView的左邊距將同時影響所有子視圖。


查看完整回答
反對 回復 2019-07-22
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

在IOS 8中,您現在可以選擇相對于SuperView邊界的預定義邊距來定義約束,而不是SuperView的邊界本身。是的,它與您在文檔中指向的布局邊距完全相關。一個優點是您可以動態地重新定義您的邊距,或者為每種類型的設備重新定義不同的邊距,并且布局將相應地更新,而不需要修改約束。

什么時候使用它:當你想利用這個新的靈活性。

什么時候不使用它:對于任何針對iOS 7或更低版本的應用程序。


查看完整回答
反對 回復 2019-07-22
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

UIView上的屬性是:layoutMargins..見蘋果文檔..基本上,如果布局邊距為8、8、8、8(默認),則以0引導空間到容器邊距的約束的x位置為8。請注意,這只能在iOS 8或更高版本上使用。

對于每個不希望自己的約束進入容器邊距的人:

Ctrl+單擊+拖動,以顯示創建約束彈出。

如果菜單顯示默認情況下要創建對邊距的約束,請按住選項/alt,以允許對容器而不是容器邊距施加約束。

現在,它將顯示創建約束的選項,而不是對邊距的限制。這是方式,道路我的用法更快。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 490 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號