我为我的应用程序创建了一个浮动视图,它始终显示在屏幕上。
现在我想让它的一半在屏幕上移动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)];
然而,它不起作用。我该怎么做才能得到我想要的结果?有关更多信息,请参见下图:
答案 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约束,并在需要时以负值更新。