就像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
}
}
任何建议都会非常有用。
答案 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时隐藏它们。