底部动画类似于 iOS 中的 Apple Maps 应用程序
Posted
技术标签:
【中文标题】底部动画类似于 iOS 中的 Apple Maps 应用程序【英文标题】:Bottom animation similar to Apple Maps application in iOS 【发布时间】:2018-02-24 21:09:27 【问题描述】:想要创建一个动画,用户可以从底部滑动视图,类似于 ios 中的 Apple Maps 应用程序。但是在处理手势时遇到问题。
我的 mainVC 中的代码,其中 panVC 从底部添加为子视图,效果很好。(panVC 正确位于底部)
func displayFromBottom
let storyboard = UIStoryboard(name: "Main", bundle: nil)
listVC = storyboard.instantiateViewController(withIdentifier: “PanViewContr") as! PanViewContr
var startingFrame = self.view.bounds;
startingFrame.origin.y = startingFrame.size.height; //Starts from the bottom of the parent.
startingFrame.size.height = 100; //Has a height of 100.
var finalFrame = self.view.bounds;
finalFrame.origin.y = finalFrame.size.height - 100; //100 from the bottom of the parent.
listVC.view.frame = startingFrame
listVC.willMove(toParentViewController: self)
self.addChildViewController(listVC)
self.view.addSubview(listVC.view)
listVC.didMove(toParentViewController: self)
UIView.animate(withDuration: 0.5, animations:
self.listVC.view.frame = finalFrame
) complete in
print("done”)
PanVC 的代码是处理平移手势的。
func slideViewVerticallyTo(_ y: CGFloat)
self.view.frame.origin = CGPoint(x: 0, y: y)
@IBAction func panGesture(_ panGesture: UIPanGestureRecognizer)
switch panGesture.state
case .began, .changed:
// If pan started or is ongoing then
// slide the view to follow the finger
let translation = panGesture.translation(in: view)
let y = max(0, translation.y) //what should be value of y to make it dragable smoothly
self.slideViewVerticallyTo(y)
break
case .ended:
break
高度赞赏任何正确方向的提示。
【问题讨论】:
【参考方案1】:我创建了一个可移动的扩展程序,它增加了在屏幕上移动 UIView 的功能,您可以在此处查看代码:https://github.com/szweier/SZUtilities/blob/master/SZUtilities/Classes/UIView/Movable/UIView%2BMovable.swift 您可能会在此代码中看到您自己缺少的东西。很抱歉我的回答不够具体,但希望它能让你朝着正确的方向前进。
【讨论】:
我尝试了链接,但它超出了屏幕。我希望屏幕只垂直移动。您对此有任何反馈吗 如果你删除了“+ translation.x”,它应该会删除我上面示例代码中左右平移的能力。以上是关于底部动画类似于 iOS 中的 Apple Maps 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用我的 ios App iOS 9 Swift 2.2 中的路线打开 Apple Maps App
Here maps iOS SDK:旋转Here maps中的标记
iOS 6 中的 Apple 地图方案:如何显示标注/图钉?