UITABBAR可访问性iOS

发布于 2025-02-13 02:10:06 字数 2039 浏览 0 评论 0原文

[q]可以 uiAcceSsibilityTraits.tabbars.tabbar 仅适用于uitabbar?有什么方法可以使Uiviews具有tabar uiaccessibilitytraits?

在Uitabbar中与Uitabbaritems一起工作。

// This works. No problem
let first = UITabBarItem(title: "firstTab", image: UIImage(systemName: "chart.line.uptrend.xyaxis"), selectedImage: UIImage(systemName: "chart.line.uptrend.xyaxis"))
let second = UITabBarItem(title: "secondTab", image: UIImage(systemName: "arrow.left.and.right.square"), selectedImage: UIImage(systemName: "arrow.left.and.right.square"))

let tabBar = UITabBar()
tabBar.setItems([first, second], animated: true)
view.addSubview(tabBar)
tabBar.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
    tabBar.leadingAnchor.constraint(equalTo: view.leadingAnchor),
    tabBar.trailingAnchor.constraint(equalTo: view.trailingAnchor),
    tabBar.bottomAnchor.constraint(equalTo: view.bottomAnchor),
    tabBar.heightAnchor.constraint(equalToConstant: 100)
])

tabBar.isAccessibilityElement = false
tabBar.accessibilityTraits = .tabBar

但是,我的 tabar和tabbaritems应该是uiview 不是uitabbar和uitabbaritems。而且这行不通。

// Doesn't work
let label1 = UILabel()
let label2 = UILabel()
label1.text = "first"
label2.text = "second"

let stackView = UIStackView(arrangedSubviews: [label1, label2])
view.addSubview(stackView)
stackView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
  stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
  stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
  stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
stackView.backgroundColor = .cyan
stackView.axis = .horizontal

stackView.isAccessibilityElement = false
stackView.accessibilityTraits = .tabBar

[Q] Can UIAccessibilityTraits.tabBar only be applied to UITabBar? Is there any way to make UIViews have tabBar UIAccessibilityTraits?

Works fine with UITabBarItems in UITabBar.

// This works. No problem
let first = UITabBarItem(title: "firstTab", image: UIImage(systemName: "chart.line.uptrend.xyaxis"), selectedImage: UIImage(systemName: "chart.line.uptrend.xyaxis"))
let second = UITabBarItem(title: "secondTab", image: UIImage(systemName: "arrow.left.and.right.square"), selectedImage: UIImage(systemName: "arrow.left.and.right.square"))

let tabBar = UITabBar()
tabBar.setItems([first, second], animated: true)
view.addSubview(tabBar)
tabBar.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
    tabBar.leadingAnchor.constraint(equalTo: view.leadingAnchor),
    tabBar.trailingAnchor.constraint(equalTo: view.trailingAnchor),
    tabBar.bottomAnchor.constraint(equalTo: view.bottomAnchor),
    tabBar.heightAnchor.constraint(equalToConstant: 100)
])

tabBar.isAccessibilityElement = false
tabBar.accessibilityTraits = .tabBar

However, my tabBar and tabBarItems are supposed to be UIView not UITabBar and UITabBarItems. And this doesn't work.

// Doesn't work
let label1 = UILabel()
let label2 = UILabel()
label1.text = "first"
label2.text = "second"

let stackView = UIStackView(arrangedSubviews: [label1, label2])
view.addSubview(stackView)
stackView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
  stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
  stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
  stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
stackView.backgroundColor = .cyan
stackView.axis = .horizontal

stackView.isAccessibilityElement = false
stackView.accessibilityTraits = .tabBar

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文