2014-10-31 21 views
0

在呈現其他視圖控制器後,UIView的幀和位置屬性重置爲初始值。在呈現其他視圖控制器後,UIView將重置爲初始值

- (IBAction)moveClicked:(UIButton *)sender { 
    self.imvOriginal.center = CGPointMake(self.imvOriginal.center.x + 200, self.imvOriginal.center.y + 200); 
} 

- (IBAction)showClicked:(UIButton *)sender { 
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    TopViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"topViewController"]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

topViewController關閉後,imvOriginal的center屬性會自動重置。 實際上,打開topViewController時會重置此屬性。

我不會使用自動約束,因爲我應該使用Pan,Pinch,Rotate手勢來實現移動,縮放和旋轉ImageView。這個特性改變了ImageView層的affineTransform屬性的位置。

我該如何解決這個問題?

+0

那麼,您關閉了自動佈局嗎? – rdelmar 2014-10-31 15:41:29

+0

不,我沒有設置約束到ImageView – jeilsoft 2014-10-31 15:42:08

+0

沒有設置約束與關閉自動佈局不是一回事。如果您不自己添加它們,系統會爲您添加約束條件。如果您不想使用自動佈局,則需要轉到文件檢查器並取消選中「使用自動佈局」框。 – rdelmar 2014-10-31 15:44:10

回答

1

你看到的問題是由自動佈局造成的。即使您沒有爲視圖設置約束,如果自動佈局處於打開狀態(默認情況下),系統會爲您添加約束條件。如果您想爲故事板中的某些視圖使用自動佈局,但不想爲其他特定視圖使用自動佈局,則應該使用代碼創建該視圖。

相關問題