2016-10-09 41 views
0

我有一個的故事保障,其類別設置爲MyView(此類定義爲@interface MyView : UIView)。iOS - 設置子視圖的寬度與父窗口相同(objective-c)

MyView類,我有這樣的結構:

-(void)awakeFromNib{    

    [super awakeFromNib]; 

    [[UINib nibWithNibName:@"MyNib" bundle:nil] instantiateWithOwner:self options:nil]; 

    [self addSubview:self.contentView]; 
}  

它從筆尖加載設計,並添加contentView它。現在,我怎樣才能將contentView的寬度設置爲與self的寬度相同?我已經嘗試使用addSubview方法以編程方式添加約束,但應用程序崩潰。

那麼我應該在哪裏添加約束和代碼應該如何?

+1

不需要約束使wdith相等。 YOu爲xib中的元素正確設置約束。你可以在清醒時從nib方法改變xib的框架。 –

+0

當您可以在界面構建器中設置約束時,爲什麼要在代碼中添加約束? – Adeel

+0

@TejaNandamuri謝謝......如果你把這個作爲答案,我會接受它。 –

回答

1

您不必設置約束來使寬度相等。

只需在xib中設置元素的約束條件,以便它們根據其超級視圖框架進行對齊。

你可以在awakeFromNib方法中設置xib視圖幀。

0

您可以使xib視圖出口,然後可以設置設置的約束以編程方式查看其父視圖。你可能會從this得到想法它應該工作。

+0

我已經使用這種方法,但它崩潰了...我不知道我應該添加約束,因爲在awakeFromNib,崩潰發生。 –

+0

我同意@teja Nandamuri其實你可以在xib視圖中設置你的約束,然後在viewDidAppeare方法中,你可以添加你的子視圖,你的父視圖框架寬度的寬度與viewWillAppeare後執行的約束寬度相同。 –

相關問題