gpt4 book ai didi

ios - 当用户点击全屏图像时隐藏导航栏和工具栏?

转载 作者:行者123 更新时间:2023-11-30 13:50:57 27 4
gpt4 key购买 nike

我需要有关设置此功能的帮助。用户从第一个 View Controller 点击缩略图图像以转到全屏显示图像的 View Controller 。我自定义了导航栏的外观,使其看起来与应用程序的其余部分不同,因此相同的导航栏不会与之前的链接起来。

我已经成功地按照我想要的方式显示导航栏,并且所有按钮也按照我想要的方式工作。现在我只想在 View 出现时以及用户点击时隐藏导航栏,以显示导航栏,甚至可能在此过程中将背景颜色从黑色更改为白色。这是我所拥有的:

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")
}

到目前为止,当我点击时,我的调试器会打印“Tapped Screen”,所以我只是在寻找一些隐藏导航栏的代码。我尝试了很多不同的方法,我知道它会是:

navigationController?.barHideOnTapGestureRecognizer
// OR
navigationController?.hidesBarsOnTap = true
// OR
navigationController?.setNavigationBarHidden(true, animated: true)

但我似乎无法将它们放在正确的位置或其他什么地方,也许是因为我的自定义导航栏或者因为我有来自以前的 View Controller 的自定义转场?我正在使用所有最新版本的 swift、xCode 等。提前致谢!

最佳答案

对我来说,在 viewDidLoad 中设置 navigationController?.hidesBarsOnTap = true 有效。每次我单击屏幕上的任意位置时,它都会隐藏这些栏,然后分别显示它们。

如果您想隐藏它们并且不再显示它们,您可以将 navigationController?.hidesBarsOnTap = true 放入 tappedScreen 函数中。

如果您想要其他场景,请告诉我!

编辑:我得到了它!! :)

好吧,你想隐藏你的导航栏而不是导航 Controller !!所以你可以使用这个:

func tappedScreen()
{
navBar!.hidden = true;

}

关于ios - 当用户点击全屏图像时隐藏导航栏和工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com