gpt4 book ai didi

ios - 在没有标题的 UITabBarItem 上设置可访问性标签

转载 作者:可可西里 更新时间:2023-11-01 03:28:26 24 4
gpt4 key购买 nike

我有一个像这样的 UITabBarItem:

_Controller.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil image:nil tag:0];

但是将 nil 作为标题会删除可访问性和 KIF 测试所需的标签。我发现的另一种方法是设置标题并将其移出屏幕,但这似乎是一个 hacky 解决方案:

_Controller.tabBarItem.title = @"Foo";
_Controller.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, 200);

是否有可能没有标题的 UITabBarItem,但仍然有可访问性标签?

编辑以添加标签栏和背景按钮代码的完整代码:

- (void) loadViewController {
_Controller = [[UIViewController alloc] init];
UIImage *normalImage = [UIImage imageNamed:@"bar.png"];
UIImage *selectedTabImage = [UIImage imageNamed:@"barHover.png"];
[self addCenterButtonWithImage:normalImage
highlightImage:selectedTabImage];

_Controller.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil image:nil tag:0];
}

// Create a custom UIButton and add it to the center of our tab bar
-(void) addCenterButtonWithImage:(UIImage*)buttonImage highlightImage:(UIImage*)highlightImage
{
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(openCamera) forControlEvents:UIControlEventTouchUpInside];

button.center = CGPointMake(self.tabBar.frame.size.width/2.0, self.tabBar.frame.size.height/2.0 - 6.0);

[self.tabBar addSubview:button];
}

最佳答案

在 iOS8 中,您可以直接为标签栏项目分配辅助功能标签:

_Controller.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil image:nil tag:0];
_Controller.tabBarItem.accessibilityLabel = @"Foo";

对于 iOS7 及以下版本,你是对的,你需要做一些事情来隐藏文本。你可以像你说明的那样强制它离开屏幕:

_Controller.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Foo" image:nil tag:0];
_Controller.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, 200);

或者你可以让文字颜色清晰:

_Controller.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Foo" image:nil tag:0];
[_Controller.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} forState:UIControlStateNormal];

请记住,视障用户会使用您采用的任何解决方案来浏览您的应用。因为你的背景按钮是一个不可用的装饰,你应该这样标记它:

button.isAccessibilityElement = NO;
button.userInteractionEnabled = NO;

关于ios - 在没有标题的 UITabBarItem 上设置可访问性标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368329/

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