UGUI基礎篇 第 2 課 錨點定位全講解

2021-09-26 21:19:19 字數 3189 閱讀 9342

在實際的開發ui面板時,我們常常會用到ui的錨點定位,讓ui固定與某一片顯示區域,或者隨著解析度的改動而變化

讓ui介面不出現,黑塊,疊加等看起來體驗感極差的效果影響。

我們介紹三種比較常用的定位方式(定位基於自身anchors與pivot ):

區域性定位

彈性定位

適配定位

anchors引數解讀:

min: x y

max: x y

其中anchors x ,y的min,max取值指的是scene場景下4顆散錨釘佔父物體的比例值。

(父物體的左下角位置為 (0,0) ,左上角為 (0,1), 右下角為(1,0),右上角為(1,1))

如圖所示,我們挪動4顆錨釘後,anchors值的變化:

數值如下:

pivot(樞軸點)的引數與anchors相同,最大為0,最小為1,他是自身ui上的比例值。

pivot代表是是scene中ui物體上的藍色圓環,他好比人的重心一樣。

pivot與 4個錨點圖案的構成的錨點之間的相對位置即為該ui物體的pos。

如圖所示:

這時我們已經理解了anchors與pivot的數值意思了,我們進入下面的定位講解。
介紹: 區域性定位是讓ui處於父物體的某一處方向,例如左上角,之後調整pos,選擇合適的位置,之後無論如何改變解析度或者父物體的大小

該ui都會處於父物體的左上方向偏移pos的位置,且ui不會被拉伸變形。

原理:利用anchors的圖形介面,選擇定位到父物體的左上角,之後調整pivot為ui物體的左上方(0,1),之後調整pos即可

步驟:

第一步:調整anchors x的min,max都為0,y的min,max都為1,即將錨點的位置處於父物體的左上角。

第二步:調整pivot x的值為0,y的值為1,即將樞軸點設定在ui物體的左上角。

第三部:只需將pos中x,y全部設定為0,即4顆錨釘的幾何中心與pivot處於同一位置

第四部:設定自己希望將ui處於父物體的區域性偏移的位置上,之後就完成區域性定位了。

介紹: 彈性定位是指將ui根據父物體的縮放拉伸,改變自己的縮放拉伸,達到同樣適配與父物體的定位方式(ui會被拉伸)

原理:利用anchors的x,y的min,max,設定拉伸範圍佔父物體rect(指父物體的矩形範圍)的比例,之後設定pivot,使pivot

的位置與4顆錨釘的幾何中心位置相同。此時ui物體會伴隨著父物體的縮小放大,而等比例的與父物體縮小放大。

演示:將ui使用彈性適應定位,定位到父物體的上方中心,x軸佔父物體的0.2-0.8。

步驟:

第一步:調整anchors x的min,max為0.2,0.8,y的min,max都為1,即將4顆錨釘的位置處於父物體的上方,左上角2個,右上角2個。

第二步:調整pivot x的值為0.5,y的值為1,即將樞軸點設定在ui物體的中上角。

第三部:只需將pos中left,right全部設定為0,即4顆錨釘的幾何中心與pivot處於同一位置

第四部:這時無論怎麼放大縮小父物體,或者改變解析度,子物體始終佔父物體x軸比例相同。

最終效果:

各個錨釘在上下左右方向上的偏移量。

介紹: 完全適配定位是直接將ui物體定位到父物體的橫向豎向佔比的乙個矩形框範圍中。(ui會被拉伸)

原理:利用anchors的x,y的min,max,設定ui物體佔父物體rect(指父物體的矩形範圍)的比例,pivot值始終為(0.5,0.5)

可以理解為4顆錨釘,將該ui始終固定在父物體區域內的乙個矩形塊中,完全遵循父物體的縮放而改變自己的縮放。

演示:將ui使用完全適應定位,定位到父物體的x軸佔父物體的0.2-0.4,y軸佔父物體的0.2-0.4的位置上。

步驟:

第一步:調整anchors x的min,max為0.2,0.4,y的min,max為0.2,0.4,即將4顆錨釘的位置處於父物體的x軸0.2-0.4,y軸0.2,0.4。

第二步:調整pivot x的值為0.5,y的值為0.5,即將樞軸點設定在ui物體的中心。

第三部:只需將pos中left,right,top,bottom全部設定為0,即4顆錨釘的幾何中心與pivot處於同一位置

第四部:這時無論怎麼放大縮小父物體,或者改變解析度,子物體始終佔父物體x軸比例相同。

最終效果:

------------我是有底線的--------------

python基礎教程共60課 第2課print

直接在print後面加一段文本來輸出的話,需要給文字加上雙引號或者單引號。大家發現,print除了列印文字之外,還能輸出各種數字 運算結果 比較結果等。你們試著自己print一些別的東西,看看哪些能成功,哪些會失敗,有興趣的話再猜一猜失敗的原因。其實在python命令列下,print是可以省略的,預...

第2課 掌握C

1.定義結構體和類時別忘記在最後加入 號!例如class point 2.include 與 include h 的區別 不查詢執行時目錄,查詢執行時目錄!3.類的定義中,如果未指明成員型別,則預設為private.而結構體中則預設為public.4.引用 引用經常用在函式的傳參上。另外數值交換函式...

第2週第2次課 線性表(2)

順序表基本運算演算法 1.初始化線性表initlist l 2.銷毀線性表destroylist l 3.判斷線性表是否為空表listempty l 4.求線性表的長度listlength l 5.輸出線性表displist l 6.求線性表中的某個資料元素值getelem l,i,e 7.按元素值...