Xcode - отключить доступность для всех элементов
Я пытаюсь отключить доступ ко всем элементам пользовательского интерфейса, которые появляются на моем экране. После этого я планирую повторно включить только определенные элементы на основе взаимодействия пользователя с приложением.
Я пытался сделать это, передавая self.view к следующему методу:
- (void)disableSubviewsOfView:(UIView *)view
{
NSArray *subviews = [view subviews];
for (UIView *subview in subviews)
{
[subview setIsAccessibilityElement:NO];
[self disableSubviewsOfView:subview];
}
}
Следует отметить, что по какой-то причине парень, который изначально написал этот код, решил поместить UIViews поверх друг друга, чтобы в фоновом режиме остались элементы.
Мне интересно, есть ли способ, которым я могу отключить доступ ко всем элементам, не обязательно только те, которые содержатся в конкретном UIView?
1 ответ
Из вашего комментария кажется, что вы пытаетесь запретить пользователям VoiceOver взаимодействовать с закрытыми представлениями (например, представления, заблокированные модальным представлением). Попробуйте установить accessibilityViewIsModal
в YES
в вашем самом верхнем представлении, чтобы инструктировать клиентов доступности игнорировать взаимодействие с братьями и сестрами этого элемента.
Вы можете отключить доступность каждого элемента в файлах раскадровки /xib.
После в коде вы можете включить нужные вам элементы.
view.IsAccessibilityElement = YES;
Это может вам помочь, но я думаю, что в вашей ситуации верхний ответ лучше.