2011-10-07 8 views
5

मैंने देखा है कि एक UIScrollView ने अभिगम्यता क्षेत्र का उल्लेख नहीं किया है जहां मैं अभिगम्यता लेबल या अभिगम्यता सेट कर सकता हूं। ऐसा लगता है कि गतिविधि संकेतकों के लिए भी लागू होता है।इंटरफ़ेस बिल्डर में UIScrollview का उपयोग करने योग्य क्षेत्र क्यों नहीं है?

UIVIews, UIButtons और अधिक में यह क्षेत्र क्यों है और UIScrollView और UIActivityIndicatorView क्यों नहीं है?

उत्तर

8

अच्छा सवाल - स्क्रॉल व्यू का कारण यह है कि ऐप्पल इसे एक सुलभ तत्व नहीं मानता है।

आप UIAccessibility प्रलेखन को देखें, तो आप एप्पल मिल जाएगा क्या एक 'सुलभ तत्व' के रूप में गिना जाता है पर कहने के लिए निम्नलिखित है:

इसका एकमात्र अपवाद [एक दृश्य सुलभ किया जा रहा है] एक ऐसा दृश्य जो केवल अन्य वस्तुओं के लिए एक कंटेनर के रूप में कार्य करता है जो सुलभ होना चाहिए। इस तरह के विचार को UIAccessibilityContainer प्रोटोकॉल को लागू करना चाहिए और इस प्रॉपर्टी को NO पर सेट करना चाहिए।

एक UIScrollView बस subviews के लिए एक कंटेनर है, इसलिए इसके isAccessibilityElement संपत्ति नहीं पर सेट है (इसलिए तुम क्यों इंटरफ़ेस बिल्डर में पहुंच विकल्प दिखाई नहीं देते) है।

तो मूल रूप से, जब आप स्क्रॉल व्यू का उपयोग कर रहे हैं तो आइटम इसके अंदर पहुंच योग्य होना चाहिए, लेकिन स्क्रॉल दृश्य स्वयं नहीं होना चाहिए।

+1

धन्यवाद! यह वास्तव में UIAutomation का उपयोग कर मेरी एक और समस्या हल हो गई। :-) – MdaG

+0

यह आईओएस 9 में अब और प्रासंगिक नहीं है। आप स्क्रॉल व्यू में एआई जोड़ सकते हैं – konradowy

0

UIAutomation पहुंच लेबल UIScrollView के लिए आप स्क्रॉल दृश्य पर subviews तक पहुँचने के लिए scrollview को सूचकांक का उपयोग करना होगा बारे में अधिक जानकारी जोड़ने के लिए। उदाहरण के लिए:

target.frontMostApp().mainWindow().scrollViews()[0].buttons()["logoutButton"].tap(); 

नोट: धारणा है कि "logoutButton" लॉगआउट बटन के लिए पहुँच लेबल है और यह पुस्तक दृश्य पर एक subview है।