2014-10-31 55 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

你看到的问题是由自动布局造成的。即使您没有为视图设置约束,如果自动布局处于打开状态(默认情况下),系统会为您添加约束条件。如果您想为故事板中的某些视图使用自动布局,但不想为其他特定视图使用自动布局,则应该使用代码创建该视图。

相关问题