gpt4 book ai didi

ios - 将 UIView 滑出屏幕

转载 作者:行者123 更新时间:2023-11-29 12:13:08 25 4
gpt4 key购买 nike

我希望能够有一个 UIView(或者,如果需要的话,UIViewController),它可以被“拖动”/轻弹/滑出屏幕 - 但锁定在垂直轴上(这样 View 会上升或关闭屏幕以显示下面的 View )。这有点像 Facebook 应用程序的 WebView 。

这可以用 UIGravityBehavior 实现吗?

任何想法都会很棒。

最佳答案

我刚才使用 UIPanGestureRecognizer 做了类似的事情。这是它的工作原理:

float slidingMenuOffsetSum;

- (void)handleSlidingMenuPan:(UIPanGestureRecognizer *)gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:_slidingMenuView];

slidingMenuOffsetSum += translation.y;
CGPoint newSlidingMenuCenter = CGPointMake(_slidingMenuView.center.x, _slidingMenuView.center.y + translation.y);

if (_slidingMenuView.frame.origin.y <= 512 && _slidingMenuView.frame.origin.y >= 0) {
_slidingMenuView.center = newSlidingMenuCenter;
}

[gestureRecognizer setTranslation:CGPointZero inView:_slidingMenuView];

if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
[UIView animateWithDuration:0.3
animations:^{
[_slidingMenuView setUserInteractionEnabled:false];
if (slidingMenuOffsetSum > 0) {
if (slidingMenuOffsetSum > _slidingMenuView.frame.size.height / 4) {
[self setSlidingMenuHidden:false];
} else {
[self returnSlidingMenuToPosition];
}
} else {
if (slidingMenuOffsetSum < -_slidingMenuView.frame.size.height / 4) {
[self setSlidingMenuHidden:true];
} else {
[self returnSlidingMenuToPosition];
}
}
}
completion:^(BOOL finished) {
slidingMenuOffsetSum = 0;
[_slidingMenuView setUserInteractionEnabled:true];
}];
}
}

您可以调整滑动菜单可以移动的值,以及检测 View 是否应该返回其原始位置的阈值,或者例如。离开屏幕。

关于ios - 将 UIView 滑出屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32761209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com