2016-06-01 67 views
0

我從一個筆尖加載一個視圖,這個視圖有幾個子視圖,並在xib上。 一旦我從nib加載這個視圖,我試圖通過使用:view.subLabel.frame = CGRectMake()來更改子視圖框架。但是,這不起作用,我不知道爲什麼。我禁用了xib的autolayout屬性,但它不起作用。任何人都知道如何更改從xibs加載的視圖框架?謝謝。是從xib載入視圖,以及如何更改視圖的框架?

爲init和變化幀

代碼如下:

初始化: GADNativeContentAdView * AD瀏覽= [[[一個NSBundle mainBundle] loadNibNamed:@ 「loadingContent」 所有者:無選項:無] firstObject];

然後改變框架: adView.logoView.frame = CGRectMake(0,0,50,50);

但這不起作用。

+0

你能後的代碼,你的初始化的廈門國際銀行,並設置框,這樣,我們可以嘗試幫助你。 – orxelm

+0

初始化: GADNativeContentAdView * AD瀏覽= [[[一個NSBundle mainBundle] loadNibNamed:@ 「loadingContent」 所有者:無 選項:無] firstObject]; 然後更改框架: adView.logoView.frame = CGRectMake(0,0,50,50); 但這不起作用。 – user2053760

回答

0

如果您想更改子視圖的大小或位置,您應該使用NSAutolayout並使用NSAutoLayoutConstraints。例如宣佈一個高度約束作爲一個屬性,它在你的廈門國際銀行連接,並改變這樣說:

myHeightConstraint.constant = newValue 
UIView.animateWithDuration(duration, animations: { 
     self.view.layoutIfNeeded() 
}) 
0

user2053760,

當你實例使用

GADNativeContentAdView *adView = [[[NSBundle mainBundle] loadNibNamed:@"loadingContent" owner:nil options:nil] firstObject]; 

你還沒有一個視圖指定其框架,所以默認情況下它是用框架(0,0,0,0)實例化的。然後,您繼續更改此adView中的視圖並將其框架設置爲(0,0,50,50)。

如果保存它的視圖本身的大小是(0,0),你如何看待子視圖?

所以首先更改父幀

adView.frame = CGRectMake(0, 0,50, 50); 

,那麼你可以設置childView框架,

adView.logoView.frame = CGRectMake(0, 0,50, 50); 
相關問題