ios - 显示带有选项的底部 View

标签 ios swift uiview xib

当我导航到某个 View Controller 时,我想要一个从底部开始的 View ,其中包含如下选项......

我怎么会有这样的看法...? enter image description here

EDIT 1

我尝试按照链接中的建议使用 TableView 而不是 Collection View 来实现。这就是我所拥有的......

enter image description here

向下拖动 View 会给我这个 View ......

enter image description here

但是我来到 View 中,我不希望向上滑动的 View 覆盖 View 的整个长度,但它的大小应该只与第一个屏幕截图中给出的大小相同。我怎样才能实现这一目标..?

最佳答案

假设您使用的是我在评论中发布的同一个 github 项目。

首先删除垃圾:文件 -> TDStickyView

  1. 销售点

    @IBOutlet weak var viewLeft: UIView!
    @IBOutlet weak var viewRight: UIView!
    private var angel : CGFloat = 0
    
  2. 来自func viewSetup

    :
    :
    // DELETE THESE 2 LINES AND THESE FUNC TOO.
    self.setCursors()  
    self.rotateView(addAngel: 0)
    
  3. 来自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添加约束,

  1. 对于左光标

enter image description here

  1. 对于右光标

enter image description here

现在项目已经稳定了,我们来谈谈您的需求。

  1. 在初始化时更改 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.
  1. 完全隐藏 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)
        }
    }
}

仅此而已。

关于ios - 显示带有选项的底部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313819/

相关文章:

ios - 检测圆形 SKShapeNode 中的触摸?

objective-c - 在 Xcode 的 Objective-C 中,硬编码数学运算是在编译时还是在运行时执行的?

ios - Firebase数据库误读

iphone - 在 Objective C 中绘制图像和文本的最简单方法是什么?

ios - NSAppTransportSecurity UIWebView 问题

ios - 如何在 UITableView iOS Swift 中加载数组值 int cell 而不创建多个自定义单元格?

递归协议(protocol)的 Swift 内存管理

ios - 在 Customize UIView 上添加 subview 效果不如预期

ios - UIView 只会动画一次

iOS:Interface Builder 中定义的颜色与 Web View 中的颜色不同