我正在自定义中实现辅助功能UITableViewCell
班级。我有一个相当简单的溢出菜单,里面有几个按钮,这些按钮是隐藏的,直到按下省略号按钮滑动打开并关闭溢出。
在我的单元格的初始化程序中,我设置accessibilityElementsHidden
of my overflowContainer
to YES
。这似乎有效,当使用 VoiceOver 滚动时,这些视图将被跳过。
然后,当打开单元格时,在完成处理程序中UIView
动画,我也是这样设置的accessibilityElementsHidden
一样的overflowContainer
到NO。这似乎没有任何效果,那些元素仍然被跳过。
我也尝试过发帖UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)
更改之前/之后/时accessibilityElementsHidden
BOOL
,但这似乎也对局势没有影响。
基本上我想切换accessibilityElementsHidden
在几个UIView
特定点的实例。谁能让我知道我可能做错了什么?
这是溢出打开时触发的代码:
- (void)cellOverflowDidShow:(MyCell *)cell
{
self.overflowContainer.isAccessibilityElement = YES;
self.firstButton.isAccessibilityElement = YES;
self.secondButton.isAccessibilityElement = YES;
self.thirdButton.isAccessibilityElement = YES;
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.firstButton);
}
关闭单元格时我会触发相反的操作(全部设置为NO
并再次发布通知)。当初始化单元格时,我设置的是:
self.overflowContainer.isAccessibilityElement = NO;
完全不知道为什么它不起作用,看来我所做的一切都是 100% 正确的。如果我不在初始化程序中设置该行,则所有按钮都显示为可访问(始终)。所以看来第一个电话,是吧YES
or NO
,有效,但任何后续的都会被忽略。