如何单独设置UITableViewCells的子视图的可访问性。
它不应该作为完整单元格可访问。
如何单独设置UITableViewCells的子视图的可访问性。
它不应该作为完整单元格可访问。
如果您的tableview单元格仅包含文本,则启用单元格的可访问性即可,它将读出整个单元格。如果您有其他对象和按钮,则建议使用UITableViewCell
的子类,并覆盖-accessibilityElements
方法以返回所有可访问元素。
一些代码:
#import "CustomCell.h"
@implementation CustomCell
- (void)awakeFromNib
{
[super awakeFromNib];
self.accessibilityElements = @[self.view1, self.label, self.imageView];
}
以下帖子可能有所帮助:
http://cocoacaffeine.wordpress.com/2013/11/29/little-tricks-of-accessibility/
tableView(_:cellForRowAt:)
方法中,使单元格无法访问并使其子视图可访问。isAccessibilityElement = false
mySubview1.isAccessibilityElement = true
mySubview2.isAccessibilityElement = true
mySubview3.isAccessibilityElement = true
init(style:reuseIdentifier:)
方法中。但是,这并没有起作用,可能是因为 UITableView
在初始化每个单元格后会重置所有东西。回答 @ma11hew28 的问题,这里提供另一种方式可以节省一些代码行数。
Swift 5:
class ServiceTableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
self.selectionStyle = .none
self.isAccessibilityElement = false //not allowing accessibility for the cell itself
self.accessibilityElements = [mySubview1!, mySubview2!, mySubview3!] // but allowing accessibility in the cell's subviews
}
}
UITableViewCell
中的元素,方法是将单元格的contentView.accessibilityElementsHidden
设置为true,同时将我的UI项目的isAccessibilityElement
设置为true。contentView.accessibilityElementsHidden = true
UIElement.isAccessibilityElement = true
tableView(_:cellForRowAt:)
中完成,而不是在你自定义的单元格的init(style:reuseIdentifier:)
方法中。请参考这个答案。 - ma11hew28