簡體   English   中英

iOS-針對imageView上按鈕的不同屏幕尺寸的自動布局縮放

[英]iOS - autolayout scaling for different screen sizes of buttons over an imageView

我有一個父UIView,里面有一個UIImageView和另一個UIView。 UIImageView有一個圖像,並且它被限制為與父UIView相同的大小。 子UIView也被限制為與父UIView相同的大小,並且它的按鈕位於UIImageView某些部分的上方(這允許用戶單擊圖像來觸發操作,具體取決於單擊圖像的位置)。

我試圖通過使用尺寸類來設置AutoLayout約束,但似乎無法根據屏幕尺寸來調整它們的大小。 我已經在iPhone 8屏幕上創建了固定約束。 iPhone 8,iPhone X和iPhone 8 Plus的寬度均為“緊湊/高度常規”,但是僅在iPhone 8 / X上看起來正確。 我也希望按比例縮小iPhone SE / 4s的尺寸。

外觀如下所示(真實背景已替換為藍色背景):請注意,所有3個屏幕的按鈕大小均相同

父UIView約束

子UIImageView約束

子UIView約束

根據iPhone 8 / X的屏幕大小,子UIView中的按鈕具有固定的上/下/前/下約束。

如何在所有屏幕尺寸上都相應地調整按鈕大小,同時在圖像上保持相同的位置,該位置也會根據屏幕尺寸進行縮放?

更新:用StackView替換內部UIView並更新約束后,均等地填充分布,它看起來像以下結構:

將UIView替換為StackView

我如何使它看起來像這樣?

原始畫面

更新2:

增加了stackView的間距和居中X / Y。

更新了stackView

更新3:我在imageView中擁有的圖像在Aspect Fit中具有“內容模式”。 如何在此模式下縮放按鈕?

首先關於父視圖不要給它靜態高度(371)->而是給主視圖一個比例高度約束

關於內部子視圖的第二個

1- imageView不會像您想象的那樣調整大小,因為它具有前導,尾隨,頂部,B約束

2-對於帶按鈕的視圖相同

而不是給這些約束,請考慮為這些子視圖給CenterX&Y提供比例的寬度和高度約束給父視圖

如果您還沒有使用stackView,它們也將適合這些按鈕

您必須對按鈕使用相等的寬度和高度限制 ,以使其根據屏幕尺寸采用尺寸。

在圖像上放置兩個水平視圖。 並使它們的高度約束相等。 供參考,如下圖。 圖像頂部和底部視圖的高度相等

然后在這些視圖中放置按鈕,然后設置相等的寬度約束。 供參考,如下圖。

在此處輸入圖片說明

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM