![](/img/trans.png)
[英]How to save a uiimageview on top of another uiimageview (swift3)
[英]Swift programmatically place UIImageView on top of another and resize
在我的故事板上,我有2個圖像視圖。 一個保存主圖像,第二個是覆蓋圖,用於指定主圖像的裁剪區域。
在我的viewDidLoad中我做到了這一點。
let screen_width = UIScreen.mainScreen().bounds.width
let screen_height = UIScreen.mainScreen().bounds.height
self.overlayImage.frame = CGRect(x: self.imageView.frame.origin.x, y: self.imageView.frame.origin.y, width: screen_width, height: (screen_height * 0.1919))
目標是使overlayImage的左上角與imageView的左上角正確對齊。 覆蓋層的高度也應約為屏幕尺寸的1/5。 但是,當我運行代碼時,overlayImage的大小完全相同,並且位於故事板上最初的位置。
如何在將圖像設置為imageView之后以編程方式將其排列在imageView之上,還可以在viewDidload中動態調整overlayImage的大小? 我只是在storyboard編輯器中手動完成,但每個人都有不同的屏幕尺寸,所以我認為最好使用mainscreen()。bounds.height變量來確定在運行時動態使用的高度。
您所要做的就是在viewDidAppear
而不是viewDidLoad
編寫您的上述代碼,如下所示: -
override func viewDidAppear(animated: Bool) {
let screen_width = UIScreen.mainScreen().bounds.size.width
let screen_height = UIScreen.mainScreen().bounds.size.height
self.overlayImage.frame = CGRect(x: 0, y: 0, width: screen_width, height:screen_height/5)
}
你的框架將根據需要設置自己。
由於您正在使用Storyboard,我寧願使用Autolayout和Constraints為我解決這個問題...例如,您為第一個圖像視圖設置了約束,然后設置基於疊加的約束並與前一個相關。 例:
因此,當屏幕尺寸發生變化時,兩個圖像將始終同等地調整大小......
界面構建器:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.