Tôi đang cố gắng để có được tiếng nói qua làm việc với một cái nhìn OpenGL, đặc biệt là từ khuôn khổ cocos2d.Tùy chỉnh UIView Không hiển thị khả năng truy cập trên Voice Over
Từ hướng tiếp cận của Apple Tôi đi theo phần này: Make the Contents of Custom Container Views Accessible
Tôi đã subclassed xem (CCGLView cho người cocos2d), mà là một UIView, để thực hiện các giao thức UIAccessibilityContainer không chính thức.
thực hiện UIAccessibilityContainer trong UIView subclassed của tôi:
-(NSArray *)accessibilityElements{
return [self.delegate accessibleElements];
}
-(BOOL)isAccessibilityElement{
return NO;
}
-(NSInteger)accessibilityElementCount{
return [self accessibilityElements].count;
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
return [[self accessibilityElements] indexOfObject:element];
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
return [[self accessibilityElements] objectAtIndex:index];
}
Mã này được nhận được gọi và -(NSArray *)acessibilityElements
được trả lại một mảng của UIAccessibilityElements. Tuy nhiên, giọng nói trên điều khiển không hiển thị khi tôi chạm vào màn hình. Bất kỳ ý tưởng về những gì tôi đang thiếu hoặc làm sai?
Thông tin khác:
Tôi đang sử dụng một kịch bản và thêm các CCGLView đến UIView trong kịch bản này. _director.view là CCGLView mà tôi đã phân lớp.
// Add the director as a child view controller.
[self addChildViewController:_director];
// Add the director's OpenGL view, and send it to the back of the view hierarchy so we can place UIKit elements on top of it.
[self.view addSubview:_director.view];
[self.view sendSubviewToBack:_director.view];
Đối với một trong khi tôi nghi ngờ rằng vì tôi thêm subview rằng điều này đã làm cho nó không xuất hiện, nhưng tôi cũng đã cố gắng subclassing UIView trong kịch bản theo cùng một cách nhưng nó cũng không hoạt động.
Đây cũng là cách tôi tạo mỗi UIAccessibilityElement trong mảng.
UIAccessibilityElement *elm = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:view];
elm.accessibilityFrame = f;
elm.accessibilityLabel = t.letter;
elm.isAccessibilityElement = YES;
elm.accessibilityHint = @"Button";
elm.accessibilityValue = t.letter;
elm.accessibilityTraits = UIAccessibilityTraitButton;
Điều đó đã khiến tôi phát điên trong vài giờ - cảm ơn! –