当选择UITableViewCell时,语音通过“选择”,我不希望语音结束说“已选择”。我怎样才能做到这一点?
我尝试过的事情没有成功:
accessibilityHint
和accessibilityLabel
selectionStyle = UITableViewCellSelectionStyleNone
accessibilityTraits = UIAccessibilityTraitButton
问题:
答案 0 :(得分:11)
我问这是Apple的代码级支持问题,并得到了以下完美的解决方案。使用UITableViewCell的自定义子类覆盖accessibilityTraits,如下例所示:
class NoTraitCell: UITableViewCell {
override var accessibilityTraits: UIAccessibilityTraits {
get {
return UIAccessibilityTraitNone
}
set {}
}
}
答案 1 :(得分:0)
您可以尝试再次取消选择单元格:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 2 :(得分:0)
您可以创建自定义单元格类并覆盖accessibilityTraits
,如下所示:
- (UIAccessibilityTraits)accessibilityTraits {
return UIAccessibilityTraitButton;
}
答案 3 :(得分:0)
如果您不打算使用tableview的选择功能,请不要使用tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
。我知道我总是把它作为一个" didTapOnRowAt"方法,但更好的方法是使用willSelectRowAt
:
func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
// code for when a row is tapped
return nil
}
return nil
表示单元格实际上未被选中。
答案 4 :(得分:0)
对我有用的是在accessibilityLabel
上将单元格的" "
设置为didSelectRow()
(空字符串不起作用),触发重新加载,然后在accessibilityLabel
上重置下一个出队。
答案 5 :(得分:-1)
您可以使用accessibilityElementsHidden
属性来禁用语音辅助功能。
如果您不想在画外音模式中听到视图,请将accessibilityElementsHidden
属性设为true
,以获取该特定视图(documentation)
在您的情况下,对于UITableViewCell
,您可以在tableView(_:cellForRowAt:)
方法中将其设置为true
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// write code to create cell ....
cell.accessibilityElementsHidden = true
return cell
}
注意:您还可以在awakeFromNib()
方法中为自定义类表视图单元格设置属性。
答案 6 :(得分:-3)
唯一的解决方法是阻止细胞选择
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
return nil;
}
在单元格上添加点击手势,当点击单元格时,在点按手势内的单元格选择中执行您想要的操作。