我在移动UIView方面遇到了一些麻烦。这是我的代码。
-(void)viewWillAppear
{
if ([self.expenseToShowDetail.recurring intValue] == 1) {
//something...
} else {
[self.recurringView setHidden:YES];
self.noteUIView.layer.position = CGPointMake(160, 200);
}
}
我试图隐藏1个视图并将其他视图向上移动。我在这里做错了吗?
感谢。
答案 0 :(得分:3)
这样做:
self.noteUIView.center = CGPointMake(160, 200);
您正在访问self.noteUIView
的图层属性,这可能不是您想要做的。此外,此代码不会明显地移动视图,它只会将其设置为160,200。
答案 1 :(得分:2)
它无效的原因是因为您已将其添加到viewWillAppear:方法。
将以下行添加到viewDidLayoutSubviews或viewDidAppear:
[self.noteUIView setCenter:CGPointMake(100, 100)];
答案 2 :(得分:1)
一旦更改了框架,视图就不会移动。我们需要为视图设置动画以移动到新位置。试试下面的代码
[UIView animateWithDuration:0.0 animations:^{
CGRect rect = self.noteUIView.frame;
rect.origin.x = 160;
rect.origin.y = 200;
self.noteUIView.frame = rect;
}];
答案 3 :(得分:0)
请试试这个
[self.noteUIView setCenter:CGPointMake(160, 200)];
或
self.noteUIView.frame=self.noteUIView.frame=CGRectMake(160, 200, self.noteUIView.frame.origin.size.width, self.noteUIView.frame.origin.size.height);