所以我必须要有一些简单的东西,因为我无法弄清楚如何移动我的UIView
这是我到目前为止所拥有的
我的.m文件
- (void)viewDidLoad
{
[super viewDidLoad];
[self buttonLayout];
}
-(void)buttonLayout
{
UIView *theView = [self buttonGroup];
theView.center=CGPointMake(50, 50);
}
我的.h文件
@property (nonatomic, retain) IBOutlet UIView *buttonGroup;
所以这就是我到目前为止所做的一切,我似乎无法让它完全移动 P.S我不想让它变得生气勃勃,因为我让我的布局移动以补偿不同的iPhone屏幕尺寸:)
答案 0 :(得分:5)
正如另一张海报所说,当你自动布局生效时,你不能通过改变它们的中心或框架来移动视图。
相反,您必须添加一个垂直和水平约束,从顶部/左边定位视图,将出口连接到约束,然后从代码更改约束的常量值。
答案 1 :(得分:5)
我没有测试过这个,但似乎你需要:
A)从其父级中删除视图。
B)调整其框架的中心,而不是视图。
C)重新添加子视图。
像这样:
UIView *theView = [self buttonGroup];
CGRect theFrame = theView.frame;
[theView removeFromSuperview];
theFrame.origin.x = 50.0;
theFrame.origin.y = 50.0;
theView.frame = theFrame;
[self.view addSubview:theView];
这应该 autolayout。
答案 2 :(得分:-1)
我有类似的问题,但当我尝试按照第一个解决方案中的建议更改原点时,我得到“表达式不可分配”错误。
所以我用viewDidLoad()中的以下解决方案解决了它。
首先将其中心保存在某个临时变量中,然后更改中心并再次添加到其父视图中。
CGPoint buttonCenter = self.yourButton.center;
[self.yourButton removeFromSuperview];
buttonCenter.y = buttonCenter.y + 50.0;
self.yourButton.center = buttonCenter;
[self.view addSubview:self.yourButton];