內容模式與比例縮放

2021-06-18 03:37:41 字數 1467 閱讀 5219

當您改變檢視的邊界,或者將乙個比例因子應用到檢視的transform屬性宣告

時,邊框矩形會發生等量的變化。根據內容模式的不同,檢視的內容也可能被縮放或重新定位,以反映上述的變化。檢視的contentmode屬性決定了邊界變化和縮放操作作用到檢視上產生的效果。預設情況下,這個屬性的值被設定為uiviewcontentmodescaletofill,意味著檢視內容總是被縮放,以適應新的邊框尺寸。作為例子,圖2-6顯示了當檢視的水平縮放因子放大一倍時產生的效果。

圖2-6使用scale-to-fill內容模式縮放檢視

檢視內容的縮放僅在首次顯示檢視的時候發生,渲染後的內容會被快取在檢視下面的層上。當邊界或縮放因子發生變化時,uikit並不強制檢視進行重畫,而是根據其內容模式決定如何顯示快取的內容。圖2-7比較了在不同的內容模式下,改變檢視邊界或應用不同的比例縮放因子時產生的結果。

圖2-7內容模式比較

對檢視應用乙個比例縮放因子總是會使其內容發生縮放,而邊界的改變在某些內容模式下則不會發生同樣的結果。不同的uiviewcontentmode常量(比如uiviewcontentmodetopuiviewcontentmodebottomright)可以使當前的內容在檢視的不同角落或沿著檢視的不同邊界顯示,還有一種模式可以將內容顯示在檢視的中心。在這些模式的作用下,改變邊界矩形只會簡單地將現有的檢視內容移動到新的邊界矩形中對應的位置上。

當您希望在應用程式中實現尺寸可調整的控制項時,請務必考慮使用內容模式。這樣做可以避免控制項的外觀發生變形,以及避免編寫定製的描畫代 碼。按鍵和分段控制項(segmented control)特別適合基於內容模式的描畫。它們通常使用幾個影象來建立控制項外觀。除了有兩個固定尺寸的蓋帽影象之外,按鍵可以通過乙個可伸展的、寬度 只有乙個畫素的中心影象來實現水平方向的尺寸調整。它將每個影象顯示在自己的影象檢視中,而將可伸展的中間影象的內容模式設定為uiviewcontentmodescaletofill,使得在尺寸調整時兩端的外觀不會變形。更為重要的是,每個影象檢視的關聯影象都可以由core animation來快取,因此不需要編寫描畫**就可以支援動畫,從而使大大提高了效能。

內容模式通常有助於避免檢視內容的描畫,但是當您希望對縮放和尺寸調整過程中的檢視外觀進行特別的控制時,也可以使用uiviewcontentmoderedraw模式。將檢視的內容模式設定為這個值可以強制core animation使檢視的內容失效,並呼叫檢視的drawrect:方法,而不是自動進行縮放或尺寸調整。

ht for web 限制縮放比例

看了ht 的官方文件找不到可以限制的api,可能是自己能力有限的問題。在這使用原生的滑鼠滾輪事件監聽來控制,希望有更好方案的夥伴能夠多多分享,寫的不好請見諒 限制縮放比例 zoomax 最大縮放倍數 zoommin 最小縮放倍數 zoom 初始化值 zoommax 45 zoommin 20 zoo...

控制舞台縮放比例

控制舞台縮放比例 當調整呈現 flash player 或 air 的螢幕部分的大小時,flash player 或 air 會自動調整舞台內容來加以補償。stage 類的scalemode屬性可確定如何調整舞台內容。此屬性可以設定為四個不同值,如 flash.display.在製作flash全站的...

按比例縮放顯示bitmap

bitmapfactory.options factoryoptions new bitmapfactory.options 不將讀取到記憶體中,仍然可以通過引數獲得它的高寬 factoryoptions.injustdecodebounds true bitmapfactory.decodefil...