2014-01-16 80 views
0

我有一個視圖控制器爲我的整個程序和我的程序包含運動圖像。問題在於,當點擊一個iAd橫幅時,它似乎稱爲自動佈局,所以自動佈局會自動佈置圖像,因爲我已將它們放置在故事板中,我該如何避免發生這種情況?現在我明白,如果我取消選中自動佈局,問題將得到解決,但問題是我想堅持使用自動佈局調整大小,當檢測到4英寸的屏幕時iOS自動佈局重設我的所有圖像位置

回答

0

想必您將通過設置其frame屬性來移動您的圖像。不要在Autolay下執行此操作;一旦出現另一個佈局過程,該框架將重置爲約束值。

您需要通過更改constant屬性或刪除並替換整個約束來修改約束來改變子視圖的位置。

+0

我正在使用cgpoint make,使用float移動我的圖像 – user3155745

+0

我移除了我的移動圖像中的所有約束,但是當另一個佈局傳遞發生時,仍會移動它們我現在嘗試使用不變屬性 – user3155745

0

我自己也有同樣的問題,首先進入自動佈局後,迴避它的年齡有利於iOS 5的支持。此頁幫我解決這個問題:http://matthewmorey.com/creating-uiviews-programmatically-with-auto-layout/

在viewDidLoad中我結束了在調用此:

for(NSLayoutConstraint* constraint in self.view.constraints) 
{ 
    [self.view removeConstraint: constraint]; 
} 

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.viewToCenter 
                 attribute:NSLayoutAttributeCenterX 
                 relatedBy:NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeLeft 
                multiplier:1.0 
                 constant:center.x]]; 

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.viewToCenter 
                 attribute:NSLayoutAttributeCenterY 
                 relatedBy:NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeTop 
                multiplier:1.0 
                 constant:center.y]]; 

基本上它刪除以前設定的限制(因爲我有新的定心約束定期更新),然後將其添加在新的約束中將其集中在正確的位置。所以我得到了self.viewToCenter,它從上面代碼設置的self.view的左上角獲得它的偏移量。