UIView不会搬到新的位置

时间:2014-05-30 02:17:35

标签: ios objective-c uiview

我在移动UIView方面遇到了一些麻烦。这是我的代码。

-(void)viewWillAppear
{
if ([self.expenseToShowDetail.recurring intValue] == 1) {

//something...

} else {

    [self.recurringView setHidden:YES];

    self.noteUIView.layer.position = CGPointMake(160, 200);

}
}

我试图隐藏1个视图并将其他视图向上移动。我在这里做错了吗?

感谢。

4 个答案:

答案 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);