如何使用swift隐藏视图的UI元素?

时间:2015-09-13 23:57:19

标签: ios swift user-interface uigesturerecognizer

就像navigationController?.hidesBarsOnTap = true隐藏导航栏一样,如何通过点击视图隐藏常规UI元素,如按钮,标签等?我从头开始制作PDF查看器,现在我需要一种方法,可以通过点击隐藏视图上的UI元素,就像照片应用程序在iPhone上一样。

以下是我尝试使用的代码,但没有成功:

override func viewDidAppear(animated: Bool) {
        var dismissTap = UITapGestureRecognizer(target: self, action: Selector("dismissViewElements:"))

        self.view.addGestureRecognizer(dismissTap)

    }

    func dismissViewElements(gesture: UITapGestureRecognizer){
        if gesture.state == UIGestureRecognizerState.Began {
            self.backButton.alpha = 0
        }
    }

任何建议都会非常有用。

3 个答案:

答案 0 :(得分:2)

我想我明白你想要什么。在点击视图时,您想要隐藏一堆"工具" (编辑按钮等...)。想到的应用程序是iPhone附带的照片查看器应用程序,当您点击一次,编辑/裁剪/后退按钮等...都隐藏。

最简单的方法(在我看来)是将所有这些ui控件添加到父视图中,在单独的"层上#34;。并将该图层作为顶层。当用户点击此视图时(只要它不是按钮或父视图内的某个内容),视图就会消失(连同其所有子按钮/控件/等)。

我个人会使用touchesEnded,因为它非常容易实现。继承人touchesEnded方法应该是什么样的(或多或少)

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
        self.hidden = true
        //where parentView is the parent view, whatever you named it
    }

你应该全力以赴我想

另外,我忘了提一下,你应该将UIView子类化并在touchesEnded的这个特定实现中包含UIView,并且在故事板中,你可以点击{{1您将其作为父级使用,并为其命名为子类的类类型

我在github为您推送了一个快速项目来说明这个想法

更新 - 再次显示元素

你可以做一些非常相似的事情。拥有父UIView,其中包含子UIVIew,以及子UIVIew内的所有按钮/工具。这样,在父UIView的{​​{1}}上,您可以隐藏孩子touchesEnded,再次UIView再次让孩子UIView重新出现。您在touchesEnded内所要做的就是:

UIView
这样,每当你触摸它时,它会将touchesEnded分配给它的相反。

答案 1 :(得分:0)

您必须在商品中添加'default' => 'sqlsrv',,然后制作商品/服务。在此操作中,您可以设置alpha或隐藏属性。

答案 2 :(得分:0)

你的问题非常模糊/广泛。您需要帮助的部分是什么?你有什么尝试?

一般而言:

创建点击手势识别器。将其附加到您要点按的视图。让它在视图控制器中调用方法。我们将该方法称为toggleControls:

该方法需要将手势识别器作为参数。

将Bool属性controlsAreHidden添加到VC。

在toggleControls方法中,

切换controlsAreHidden的状态。

编写显示controlsAreHidden == true时控件的代码,并在controlsAreHidden == false时隐藏它们。