2016-07-28 105 views
1

當我不能夠處理子視圖正確調整:自動調整子視圖調整的上海華

假設我有一個自定義UIView類,裏面包含一個UIImageView。

起初,我成立了像以下的UIViews:

// width and height are UIImage width height 
// it is possible that the UIImage width height is larger than the container 

self.imageView.frame = CGRectMake(0 ,0, width, height) 
self.imageView.backgroundColor = UIColor.redColor() 
self.imageView.contentMode = UIViewContentMode.ScaleAspectFit 
self.imageView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight,.FlexibleTopMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleBottomMargin] 
addSubview(self.imageView) 

self.frame = CGRectMake(0, 0, width, height) 
self.backgroundColor = UIColor.greenColor() 

讓我們把這種自定義的UIView作爲MyView的。

然後當我想把這個「myView」放在ViewController中。我做了以下工作:

myView.frame = CGRectMake(xPos, yPos, 100, 100) 
myView.autoResizeSubviews = true 

而我發現我做了這個之後,我得到了以下結果。 MyView place at the correct place with correct size, but the internal UIImageView got even a smaller size.

爲什麼會發生這種情況?以及如何使MyView中的所有子視圖根據MyView的框架正確調整大小?

謝謝。

回答

0

,如果你不使用自動佈局然後交換波紋線

請確保您在設置自後架(UIView的)分配

self.frame = CGRectMake(0, 0, width, height) 
self.imageView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight,.FlexibleTopMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleBottomMargin] 
addSubview(self.imageView) 
2

哦,我發現,自動尺寸口罩應是設置如下:

self.imageView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight, .FlexibleRightMargin, .FlexibleBottomMargin] 

這樣可以將錨點固定在頂部和左側,並允許在其他邊界上調整大小。