【问题标题】:Show a view as a swipe up gesture in front of another view将视图显示为在另一个视图前向上滑动手势
【发布时间】:2015-12-07 12:07:51
【问题描述】:

您好,我正在开发具有如下图 UI 的应用程序..

我无法理解如何创建底部向上滑动视图。 我试过在底部视图上向上滑动手势来打开它。 但我想用手指打开底视图(意味着缓慢向上拖动视图应该慢慢显示底视图)

我正在使用自动布局和故事板。我如何做到这一点?

我进行了很多搜索,得到了这个https://github.com/crocodella/PullableView,但我无法使用故事板和自动布局添加这个视图。

【问题讨论】:

    标签: ios swift xcode storyboard


    【解决方案1】:

    我只想在解决方案之前说,这不会像拖动一样的效果,因为你需要使用手势......但是如果你强烈需要点击按钮,它会给你类似的效果。我认为它不是什么你想要,但如果你愿意,这会给你一个选择

    要将底部视图拖到顶部,请使用手势,这可能会对您有所帮助

    Drag Down UIView in iOS 5

    或者这个

    http://www.jondev.net/articles/Dragging_View_with_Finger_(iPhone)

    您使用约束的constant 属性获得了类似的效果..like 将高度约束赋予底部视图并在单击事件上使用常量属性以上下滑动。

    还是一头雾水!!!这是解决方案

    界面设置

    约束设置

    之后你只需要制作一些插座并点击按钮的事件......

    • 制作底视图高度约束的出口
    • 制作一个按钮的出口以将其标题更改为向上/向下
    • 制作和点击按钮事件

    在此过程之后,您需要对按钮操作进行编码,所以这是该代码

    class ViewController: UIViewController {
    
       // Button outlet
       @IBOutlet weak var btnUp: UIButton! 
    
       // Height Constraint outlet
       @IBOutlet weak var constHeightBottomView: NSLayoutConstraint!
    
       // Boolean property to handle click
       var clicked = true
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func btnUpClicked(sender: UIButton) {
        if clicked{
            self.clicked = !clicked
            UIView.animateWithDuration(0.2, animations: {
                self.btnUp.setTitle("Down", forState: .Normal)
                self.constHeightBottomView.constant = 200
                self.view.layoutIfNeeded()
            })
    
        }
        else{
            self.clicked = true
    
            UIView.animateWithDuration(0.2, animations: {
                self.btnUp.setTitle("Up", forState: .Normal)
                self.constHeightBottomView.constant = 0
                self.view.layoutIfNeeded()
            })
        }
    }
    
    }
    

    这项工作的输出将是

    【讨论】:

    • 感谢您的回答。是的,你是对的,这对我来说是解决方法。只需要处理拖动视图坐标即可用手指处理用户拖动视图。
    • 只是提示,如果您在动画之前设置 self.constHeightBottomView.constant = 0 而不是动画内部,则幻灯片效果将起作用,
    • @El Captain 请原谅我的无知。但是view 1指针所在的位置,不就是view 1的背景视图吗?视图 2 是向上滑动的视图?请说清楚。谢谢
    • @return0 正如我在前几行中所说的那样 .. 我在这里没有使用手势 ... 所以没有向上滑动 .. 只是在按下按钮时更改约束 ... 和 view2 高度应该在开始时为 0 .... 灰色条纹是视图一 ... 黑色的条纹是视图 2
    • @EICaptainv2.0 啊,有道理。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多