Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用swift在点击视图时隐藏UI元素?_Ios_Swift_User Interface_Uigesturerecognizer - Fatal编程技术网

Ios 如何使用swift在点击视图时隐藏UI元素?

Ios 如何使用swift在点击视图时隐藏UI元素?,ios,swift,user-interface,uigesturerecognizer,Ios,Swift,User Interface,Uigesturerecognizer,正如navigationController?.hidesBarsOnTap=true隐藏导航栏一样,如何通过点击视图隐藏常规UI元素,如按钮、标签等?我从头制作了一个PDF查看器,现在我需要一种方法,可以通过点击隐藏视图中的UI元素,就像iPhone上的照片应用程序一样 以下是我尝试使用但未成功的代码: override func viewDidAppear(animated: Bool) { var dismissTap = UITapGestureRecognizer(ta

正如
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
        }
    }

任何建议都会非常有用。

您必须在您的物品中添加一个
点击手势识别器,然后进行出口/操作。在这个动作中,您设置了alpha或hidden属性。

您的问题非常模糊/宽泛。你在这方面需要什么帮助?你试过什么

非常笼统地说:

创建轻触手势识别器。将其附着到要点击的视图。让它在视图控制器中调用一个方法。让我们调用该方法toggleControls:

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

在VC中添加布尔属性控件隐藏

在toggleControls方法中,切换controlsAreHidden的状态


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

我想我理解您的要求。点击视图时,您希望隐藏一组“工具”(编辑按钮等)。我想到的应用程序是iPhone附带的照片查看器应用程序,当你点击一次,编辑/裁剪/后退按钮等。。。都藏起来了

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

我个人会使用touchesEnded,因为它很容易实现。以下是
touchesedend
方法的外观(或多或少)


这样,每次您触摸它时,它都会将
隐藏的
指定给它原来的相反位置。

您是否使用过一个应用程序,只需点击视图即可关闭导航栏和工具栏?特别是PDF/书籍阅读应用程序?嗯,我想应用相同的点击关闭方法,但在常规UI元素上,如按钮、标签等。而不是导航栏或工具栏。这其中的哪一部分需要帮助?你尝试过什么?我尝试过添加一个点击手势,将其作为子视图添加到我的视图中,并在点击视图时使特定UIButton的alpha淡出。因此,编辑你的问题以包含所有相关代码。但是代码应该是什么样的,例如,如果我想通过点击视图关闭视图上的按钮。您是否使用过通过点击视图关闭导航栏和工具栏的应用程序?特别是PDF/书籍阅读应用程序?我想在常规的UI元素(如按钮、标签等)上应用相同的点击关闭方法。不是导航栏或工具栏。这种方法可以帮助它们在点击时消失,但我如何使它们在点击时重新出现?你可以做一些非常类似的事情。有一个父视图
UIVIew
,其中有一个子视图
UIVIew
,子视图
UIVIew
中的所有按钮/工具。这样,在父视图
UIView
touchesend
上,您可以隐藏子视图
UIView
,然后在
touchesend
上再次使子视图
UIView
重新出现。在
touchesend
中,您只需执行以下操作:
childUiView.hidden=!childUiView.hidden通过这种方式,每次触摸它时,它都会将
隐藏的
指定给它原来的相反位置。我也会用这个更新答案
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
        self.hidden = true
        //where parentView is the parent view, whatever you named it
    }
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
            childUiView.hidden = !childUiView.hidden
        }