gpt4 book ai didi

swift - 以编程方式选择选项卡栏项目并显示指示符图像

转载 作者:行者123 更新时间:2023-11-30 12:00:54 26 4
gpt4 key购买 nike

我使用的是 UITabBar,而不是 UITabBarController。每当用户单击任何选项卡时,我都可以看到带下划线的图像。

public override func viewDidLoad() {
super.viewDidLoad()
UITabBar.appearance().selectionIndicatorImage = getImageWithColorPosition(color: UIColor.darkGray, size: CGSize(width:presenterView.frame.size.width/2, height:49), lineSize: CGSize(width:presenterView.frame.size.width/2, height:2))
}

//getImageWithColorPosition用于在UITabBarItem下面添加带下划线的图片

func getImageWithColorPosition(color: UIColor, size: CGSize, lineSize: CGSize) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
let rectLine = CGRect(x: 0, y: size.height-lineSize.height, width: lineSize.width, height: lineSize.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
UIColor.clear.setFill()
UIRectFill(rect)
color.setFill()
UIRectFill(rectLine)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}

public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
openItem1()
}

public func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if (item.tag == 0) {
openItem1()
} else {
openItem2()
}
}

但是,当用户单击任何选项卡项目时,仅显示带下划线的图像。我想在用户第一次登陆屏幕时选择默认选项卡。当我以编程方式执行此操作时,下划线图像不会显示。我读了几篇堆栈溢出帖子,其中说 UITabBar 上的选择无法以编程方式触发。

还有其他办法吗?

最佳答案

如果我正确理解了这个问题,当用户打开应用程序时,您希望以编程方式选择 UITabBar 上的选项卡。您可以在 AppDelegate 中执行此操作,例如在 didFinishLaunchingWithOptions

在我的项目中,我根据某些通知等事件跳转到选项卡栏 Controller 中的选项卡。在 AppDelegate 内,我使用以下代码以编程方式选择选项卡:

if let tabbarController = self.window?.rootViewController as? UITabBarController {
tabbarController.selectedIndex = 0
}

默认情况下,如果应用程序是从冷启动启动的,则所选项目将是索引为 0 的项目,并且如果应用程序之前已启动并保存在应用程序切换器中,则所选项目将是最后打开的选项卡。

希望这就是您正在寻找的内容。

关于swift - 以编程方式选择选项卡栏项目并显示指示符图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47250074/

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