【发布时间】:2015-12-14 18:47:28
【问题描述】:
我需要有关设置此功能的帮助。从第一个视图控制器,用户点击缩略图以转到该视图控制器,该视图控制器全屏显示图像。我已经自定义了导航栏的外观,使其看起来与应用程序的其他部分不同,因此相同的导航栏不会与之前的链接。
我已经设法以我想要的方式显示导航栏,并且所有按钮也按我想要的方式工作。现在我只想在视图出现和用户点击时隐藏导航栏,以显示导航栏,甚至可能在该过程中将背景颜色从黑色更改为白色。这是我所拥有的:
var profileImage: UIImage!
var tap = UITapGestureRecognizer()
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var fullSizeImage: UIImageView!
override fun viewWillAppear(animated: Bool) {
self.fullSizeImage.image = profileImage
self.scrollView.minimumZoomScale = 1.0
self.scrollView.maximumZoomScale = 6.0
tap.addTarget(self, action: "tappedScreen")
fullSizeImage.addGestureRecognizer(tap)
fullSizeImage.userInteractionEnabled = true
let navBar = UINavigationBar(frame: CGRectMake(0, 20, self.view.frame.size.width, 44))
navBar.barTintColor = UIColor.whiteColor()
navBar.delegate = self
let navItem = UINavigationItem()
navItem.title = "Profile Image"
let leftButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelButton:")
leftButton.tintColor = UIColor(red: 37/255, green: 94/255, blue: 67/255, alpha: 1.0)
let rightButton = UIBarButtonItem(title: "Gallery", style: UIBarButtonItemStyle.Plain, target: self, action: "galleryButton:")
rightButton.tintColor = UIColor(red: 37/255, green: 94/255, blue: 67/255, alpha: 1.0)
navItem.leftBarButtonItem = leftButton
navItem.rightBarButtonItem = rightButton
navBar.items = [navItem]
self.view.addSubview(navBar)
}
fun tappedScreen() {
print("Tapped Screen")
}
到目前为止,当我点击时,我的调试器会打印“点击屏幕”,所以我只是在寻找一些可以隐藏我的导航栏的代码。我尝试了许多不同的方法,我知道它会是:
navigationController?.barHideOnTapGestureRecognizer
// OR
navigationController?.hidesBarsOnTap = true
// OR
navigationController?.setNavigationBarHidden(true, animated: true)
但我似乎无法将它们放在正确的位置或其他地方,可能是因为我的自定义导航栏或因为我有一个来自先前视图控制器的自定义 segue?我正在使用所有最新版本的 swift、xCode 等。提前致谢!
【问题讨论】:
标签: ios swift uigesturerecognizer