让UIView的一半离开屏幕

时间:2016-10-12 14:31:15

标签: ios uiview

我为我的应用程序创建了一个浮动视图,它始终显示在屏幕上。

现在我想让它的一半在屏幕上移动3-4秒。我想我应该使用NSTimer隐藏这个视图,但这不是问题。

问题是如何将此视图的origin.x设置为移出屏幕?我试图像我这样在initWithSuperView中设置框架:

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenX = screenRect.origin.x;
[self setFrame:CGRectMake(-screenX - size.width, 0, size.width, size.height)];

然而,它不起作用。我该怎么做才能得到我想要的结果?有关更多信息,请参见下图:

enter image description here

1 个答案:

答案 0 :(得分:1)

你可以使用与此类似的uiview动画:

dispatch_async(mainQueue, ^{
    __weak __typeof(self) weakSelf = self;
    [UIView animateWithDuration:3.f animations:^{
        // change uiview frame here
        weakSelf.frame = hiddenFrame;
    } completion:^(BOOL finished) {
        // setup completion
        [weakSelf.view layoutIfNeeded];
    }];
});

您也可以将NSLayoutConstraint设置为uiview的x约束,并在需要时以负值更新。