Auto Layout Guide官網文件翻譯

2022-05-06 01:18:08 字數 1700 閱讀 2788

基於對這些檢視的約束,自動布局(auto layout)會動態的計算檢視層級中所有檢視的大小和位置。例如,你可以約束乙個按鈕,使其與乙個影象檢視保持水平居中,並且使該按鈕的頂部始終在影象檢視的底部下方的8點距離處。如果影象檢視的大小和位置發生了變化,按鈕的位置將會自動調整以匹配約束的位置。

這種基於約束的設計方法允許你構建動態響應內部和外部改變的使用者介面。

當你的使用者介面中的檢視或控制項的大小發生改變時,會發生內部改變。

國際化對布局主要有三個主要影響。首先,當你把使用者介面翻譯成不同語言時,標籤可能會需要不同的空間。例如,德語通常比英語要求更多空間,而日語通常要少的多。

其次,用於表示日期和數字的格式可能在區域之間發生變化,即使語言沒有生髮改變。儘管這些變化比語言變化更微妙,但使用者介面仍然需要適應大小的微妙變化。

再次,改變語言不僅能影響文字的大小,還能影響布局的組織。不同的語言使用不同的布局方向。 例如,英語使用從左到右的布局方向,阿拉伯語和希伯來語使用從右到左的布局方向。通常,使用者介面元素的順序應與布局方向匹配。如果按鈕位於英文檢視的右下角,則應在阿拉伯語的左下方。

最後,如果您的ios應用程式支援動態型別,使用者可以更改應用程式中使用的字型大小。 這可以改變使用者介面中任何文字元素的高度和寬度。 如果使用者在執行應用程式時更改字型大小,則字型和布局都必須適應這種更改。

布局使用者介面有三種主要方法。 您可以以程式設計方式布局使用者介面,您也可以使用autoresizing來自動執行一些外部更改的響應,當然也可以使用自動布局(auto layout)。

通常,應用程式通過在每個檢視的檢視層次結構中程式設計設定檢視的frame來布局他們的使用者介面。 frame定義了檢視在它的父檢視座標系中的原點,高度和寬度。

為了布局使用者介面,您必須為檢視層次結構中的每個檢視計算大小和位置。 然而,如果檢視發生更改,則必須重新計算所有受影響的檢視的frame。

在許多方面,以程式設計方式定義檢視的frame提供了最大的靈活性和強大的功能。當發生變化時,您可以逐字地進行任何您想要的更改。 但是,由於您還必須自行管理所有更改,因此布局簡單的使用者介面需要大量的設計、除錯和維護工作。建立真正適應的使用者介面將會使難度提高乙個數量級。

您可以使用autoresizing來幫助減輕其中的一些工作。autoresizing定義了乙個當父檢視frame改變時,該檢視frame如何改變的方法。 這簡化了建立適應外部改變的布局。

然而,autoresizing支援相對較小的可能布局的子集。對於複雜的使用者介面,您通常需要你自己的程式設計來增加autoresizing。此外,autoresizing僅適用於外部改變,他們不支援內部改變。

雖然autoresizing只是對程式化布局的迭代改進,但auto layout代表了一種全新的範例,而不是考慮檢視的frame,需要考慮他們之間的關係。

自動布局(auto layout)使用一系列約束來定義您的使用者介面。約束通常表示兩個檢視之間的關係。然後,自動布局(auto layout)根據這些約束計算每個檢視的大小和位置,這將會產生能動態響應內部和外部改變的布局。

設計一組約束以建立特定行為的邏輯與用於編寫過程或物件導向**的邏輯是不一樣的。幸運的是,掌握自動布局(auto layout)與掌握任何其他程式設計任務沒有什麼不同。有兩個基本步驟:首先,您需要了解基於約束布局的背後的邏輯,然後您需要學習相關api。 在學習其他程式設計任務時,您已經成功地執行了這些步驟,自動布局(auto layout)也不例外。

B2G OS官網文件梳理

在網上查閱關於firefox os相關的文章 部落格,發現國內關於它的文章很少,即便有也是某些做過與firefox os相關工作的人根據b2g os官方文件翻譯而來的,且翻譯水平不一 若要研究此系統還是要仔細研讀b2g os官方文件。但是官網文件內部包含很多鏈結跳轉 雖然單個文件講的是乙個方向,但其...

Drill官網文件翻譯四 Drill的效能

翻譯自apache drill 官網。drill是從地基開始就奔向高效能和大資料集去設計的,下面列出來的是drill能夠做到高效能的核心要點。drill提供了乙個強大的分布式引擎來處理查詢。使用者可以從集群的任何乙個節點是提交查詢。你可以新增新的節點到集群中,以為了支援更多使用者的更多資料,或是獲得...

官翻 隱藏狀態列

官網原文 隱藏狀態列 這個課程將描述如何在不同版本的上隱藏狀態列。隱藏狀態列 可選 導航欄 可以讓你的內容有更多的空間可以顯示,從而為使用者提供乙個更有沉浸式的體驗。圖1展示了乙個可見的狀態列的程式介面 圖1 狀態列可見 圖2展示了乙個不可見的狀態列的程式介面,注意 這個action bar也被隱藏...