2013-06-27 21 views
0

我創建了一個容器,用於在自定義uiview中使用Core Graphics繪製的兩個基於框架的輔助功能元素。UIAccessibilityElement TraitAdjustable

我想要兩個元素,在這種情況下,兩個遊標,以響應一個手指上下滑動,所以我使用的性狀UIAccessibilityTraitAdjustable

我已經實施了蘋果公司文檔中描述的協議。我可以選擇這兩個元素,但單指滾動似乎沒有調用accessibilityIncrementaccessibilityDecrement。有什麼我錯過了嗎?

-(NSArray *)accessibleElements 
{  
    if (_accessibleElements != nil) { 
     return _accessibleElements; 
    } 

    _accessibleElements = [[NSMutableArray alloc] init]; 

    //add left cursor 
    UIAccessibilityElement *lcursorEl = [[UIAccessibilityElement alloc] 
              initWithAccessibilityContainer:self]; 
    lcursorEl.accessibilityFrame = [self convertRect:_lcursorFrame 
               toView:nil]; 
    lcursorEl.accessibilityLabel = NSLocalizedString(@"Left Cursor", nil); 
    lcursorEl.accessibilityTraits = UIAccessibilityTraitAdjustable; 
    [_accessibleElements addObject:lcursorEl]; 

    //add right cursor 

    UIAccessibilityElement *rcursorEl = [[UIAccessibilityElement alloc] 
             initWithAccessibilityContainer:self]; 
    rcursorEl.accessibilityFrame = [self convertRect:_rcursorFrame 
               toView:nil]; 
    rcursorEl.accessibilityLabel = NSLocalizedString(@"Right Cursor", nil); 
    //rcursorEl.accessibilityTraits = UIAccessibilityTraitAdjustable ; 
    [_accessibleElements addObject:rcursorEl]; 

    return _accessibleElements; 
} 


#pragma mark accessible elements protocol methods 

- (NSInteger)accessibilityElementCount 
{ 
    return [[self accessibleElements] count]; 
} 

- (id)accessibilityElementAtIndex:(NSInteger)index 
{ 
    return [[self accessibleElements] objectAtIndex:index]; 
} 

- (NSInteger)indexOfAccessibilityElement:(id)element 
{ 
    return [[self accessibleElements] indexOfObject:element]; 
} 

- (BOOL)isAccessibilityElement 
{ 
    return NO; 
} 

-(void)accessibilityIncrement 
{ 
    NSLog(@"Adjusting Inc"); 
} 

-(void)accessibilityDecrement 
{ 
    NSLog(@"Adjusting dec"); 
} 
+0

我可能會誤解,但不應該在選定的元素上調用accessibilityIncrement和accessibilityDecrement,而不是控制器?如果你繼承UIAccessibilityElement並在那裏實現那些方法會發生什麼? –

+0

絕對現貨我沒有想到,謝謝,現在都在工作 – user1347149

回答

0

由於要設置您所創建然後accessibilityIncrementaccessibilityDecrement將調用這些元素,而不是你的控制器上的輔助元素的調整特徵。這就是爲什麼你沒有看到任何回調。

相反,您可以繼承UIAccessibilityElement並在其中實現遞增和遞減方法。