使用选项从底部显示视图
Show view from bottom with options
当我导航到某个 viewcontroller 时,我想要一个底部视图,其中包含这样的选项...
我怎么会有这样的看法...?
EDIT 1
我已尝试按照 link 中的建议使用表视图而不是集合视图来实现。这就是我所拥有的...
向下拖动视图给我这个视图...
但是我来到视图,我不希望向上滑动视图覆盖视图的整个长度,但它应该只与第一个屏幕截图中给出的大小相同。我怎样才能做到这一点..?
假设您使用的是我在评论中发布的同一个 github 项目。
首先清除垃圾:文件 -> TDStickyView
奥特莱斯
@IBOutlet weak var viewLeft: UIView!
@IBOutlet weak var viewRight: UIView!
private var angel : CGFloat = 0
来自func viewSetup
:
:
// DELETE THESE 2 LINES AND THESE FUNC TOO.
self.setCursors()
self.rotateView(addAngel: 0)
来自 handleGesture
if aNewOrigin.y <= 60 {
self.rotateView(addAngel: .pi/8)
}
else if aNewOrigin.y >= 60 && aNewOrigin.y < self.frame.height - 100 {
self.rotateView(addAngel: 0)
}
else {
self.rotateView(addAngel: -.pi/8)
}
现在为cursorView添加约束,
- 对于左光标
- 右光标
现在项目稳定了,说说你的需求吧
- 在初始化时更改 tableView 的大小。
在viewSetup
中更改
//topMostY = UIApplication.shared.statusBarFrame.height
topMostY = parentVC.view.center.y
// It is the top most Y position of tableview and it can't go above it. Change it according to your requirement.
- 完全隐藏 TableView。
在handleGesture
变化
else if sender.state == .ended {
self.panGestureColView.isEnabled = false
if velocity.y > 0 {
// go down
// UIView.animate(withDuration: 0.3) {
// self.frame = CGRect(origin: CGPoint(x: 0, y: self.parentFrame.size.height - self.bottomMostY), size: self.frame.size)
// }
// Change above commented UIView.animate with below UIView.animate
UIView.animate(withDuration: 0.3, animations: {
self.frame = CGRect(origin: CGPoint(x: 0, y: self.parentFrame.size.height), size: self.frame.size)
}) { (isFin) in
self.removeFromSuperview()
}
}
else if velocity.y < 0 {
// go up
UIView.animate(withDuration: 0.3) {
self.frame = CGRect(origin: CGPoint(x: 0, y: self.topMostY), size: self.frame.size)
}
}
}
就这些了。
当我导航到某个 viewcontroller 时,我想要一个底部视图,其中包含这样的选项...
我怎么会有这样的看法...?
EDIT 1
我已尝试按照 link 中的建议使用表视图而不是集合视图来实现。这就是我所拥有的...
向下拖动视图给我这个视图...
但是我来到视图,我不希望向上滑动视图覆盖视图的整个长度,但它应该只与第一个屏幕截图中给出的大小相同。我怎样才能做到这一点..?
假设您使用的是我在评论中发布的同一个 github 项目。
首先清除垃圾:文件 -> TDStickyView
奥特莱斯
@IBOutlet weak var viewLeft: UIView! @IBOutlet weak var viewRight: UIView! private var angel : CGFloat = 0
来自
func viewSetup
: : // DELETE THESE 2 LINES AND THESE FUNC TOO. self.setCursors() self.rotateView(addAngel: 0)
来自
handleGesture
if aNewOrigin.y <= 60 { self.rotateView(addAngel: .pi/8) } else if aNewOrigin.y >= 60 && aNewOrigin.y < self.frame.height - 100 { self.rotateView(addAngel: 0) } else { self.rotateView(addAngel: -.pi/8) }
现在为cursorView添加约束,
- 对于左光标
- 右光标
现在项目稳定了,说说你的需求吧
- 在初始化时更改 tableView 的大小。
在viewSetup
中更改
//topMostY = UIApplication.shared.statusBarFrame.height
topMostY = parentVC.view.center.y
// It is the top most Y position of tableview and it can't go above it. Change it according to your requirement.
- 完全隐藏 TableView。
在handleGesture
变化
else if sender.state == .ended {
self.panGestureColView.isEnabled = false
if velocity.y > 0 {
// go down
// UIView.animate(withDuration: 0.3) {
// self.frame = CGRect(origin: CGPoint(x: 0, y: self.parentFrame.size.height - self.bottomMostY), size: self.frame.size)
// }
// Change above commented UIView.animate with below UIView.animate
UIView.animate(withDuration: 0.3, animations: {
self.frame = CGRect(origin: CGPoint(x: 0, y: self.parentFrame.size.height), size: self.frame.size)
}) { (isFin) in
self.removeFromSuperview()
}
}
else if velocity.y < 0 {
// go up
UIView.animate(withDuration: 0.3) {
self.frame = CGRect(origin: CGPoint(x: 0, y: self.topMostY), size: self.frame.size)
}
}
}
就这些了。