设置UITableView标头文本的accessibilityLabel

问题描述 投票:1回答:2

我正在尝试找到一种方法来为我的表视图的标题文本设置accessibilityLabel

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {        
    return @"Table View Header";
}

就我而言,我的辅助功能标签与返回的tableview的标题文本不同。

ios objective-c uitableview uiaccessibility
2个回答
1
投票

要设置accessibilityLabel属性,在标题视图本身的定义中编写文本,就像我在下面的代码片段中一样,通过添加辅助功能元素:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    CGRect headerViewFrame = CGRectMake(0.0, 0.0, tableView.frame.size.width, 44.0);
    UIView * headerView = [[UIView alloc] initWithFrame:headerViewFrame];

    UILabel * headerViewLabel = [[UILabel alloc] initWithFrame:headerViewFrame];
    headerViewLabel.text = @"Table View Header";
    [headerView addSubview: headerViewLabel];

    UIAccessibilityElement * a11yHeader = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:headerView];
    a11yHeader.accessibilityFrameInContainerSpace = headerView.frame;
    a11yHeader.isAccessibilityElement = YES;
    a11yHeader.accessibilityLabel = @"my new header text for accessibility";
    a11yHeader.accessibilityTraits = UIAccessibilityTraitHeader;

    headerView.accessibilityElements = @[a11yHeader];

    return headerView;
}

尝试一下,使其适应您的应用程序。

[返回到ObjC并不容易,但是现在,您可以按照此原理为UITableView标头文本设置accessibilityLabel] >>。 🎉🎊🥳


1
投票

或者,您也可以使用textLabelUITableViewHeaderFooterView属性。

© www.soinside.com 2019 - 2024. All rights reserved.