UICollectionView手動設(shè)置AccessibilityElements

默認(rèn)情況下布近,UICollectionView的可訪問元素只有UICollectionViewCell获茬,自己手動添加的其他視圖软舌,在自動化測試中沒有辦法直接訪問,導(dǎo)致部分case無法做自動化測試乾胶。

最近研究了一下,發(fā)現(xiàn)對于UICollectionView朽寞,UITableView這些視圖识窿,需要自己維護(hù)容器視圖的AccessibilityElements。具體的脑融,就是重新實現(xiàn)NSObject (UIAccessibilityContainer)和NSObject (UIAccessibility)分類的幾個方法喻频。

1.- (BOOL)isAccessibilityElement

返回YES,所有子視圖的可訪問性會被隱藏肘迎,不可訪問半抱;返回NO,則相反脓恕。

2.- (NSInteger)accessibilityElementCount

返回可訪問視圖元素的數(shù)量

3.- (id)accessibilityElementAtIndex:(NSInteger)index

通過索引值返回可訪問視圖元素

4.- (NSInteger)indexOfAccessibilityElement:(id)element

通過視圖元素返回索引值

當(dāng)前需求只為了滿足自動化測試,需要自己維護(hù)容器視圖的AccessibilityElements窿侈,所以為了跟業(yè)務(wù)代碼解耦炼幔,打算使用category對UICollectionView進(jìn)行擴(kuò)展。為了方便添加可訪問的視圖史简,在UICollectionView新增加一個extraAccessibilityElements的屬性乃秀,它是一個可變數(shù)組。

@property (nonatomic, strong) NSMutableArray * extraAccessibilityElements;

Objective-c中category本身是不能增加屬性定義的圆兵,但是通過運(yùn)行時綁定對象的方法跺讯,可以動態(tài)的給對象綁定一個屬性。首先聲明一個全局靜態(tài)字符串變量殉农,用來標(biāo)識綁定關(guān)系刀脏。

static NSString *_extraAccessibilityElementsKey = @"extraAccessibilityElementsKey";

接著手動實現(xiàn)set和get方法

實現(xiàn)extraAccessibilityElements屬性

在UICollectionView(AutomateTest)的+(void)load方法中添加對初始化方法和addSubView方法的hook處理,

load方法

上面代碼的作用是

1.在類初始化方法執(zhí)行完成后超凳,初始化屬性extraAccessibilityElements數(shù)組愈污。

2.在添加子視圖的操作后,將子視圖加入到extraAccessibilityElements數(shù)組中轮傍。

接著重載AccessibilityElements相關(guān)方法暂雹。

重載方法

這樣在自動化測試的時候就可以訪問UICollectionView中手動添加的視圖元素了。而且在代碼結(jié)構(gòu)上完全和業(yè)務(wù)代碼解耦了创夜,我們不需要修改任何代碼杭跪,將實現(xiàn)文件加入到工程中就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驰吓,一起剝皮案震驚了整個濱河市涧尿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檬贰,老刑警劉巖现斋,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異偎蘸,居然都是意外死亡庄蹋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門迷雪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來限书,“玉大人,你說我怎么就攤上這事章咧【胛鳎” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵赁严,是天一觀的道長扰柠。 經(jīng)常有香客問我粉铐,道長,這世上最難降的妖魔是什么卤档? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任蝙泼,我火速辦了婚禮,結(jié)果婚禮上劝枣,老公的妹妹穿的比我還像新娘汤踏。我一直安慰自己,他們只是感情好舔腾,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布溪胶。 她就那樣靜靜地躺著,像睡著了一般稳诚。 火紅的嫁衣襯著肌膚如雪哗脖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天扳还,我揣著相機(jī)與錄音才避,去河邊找鬼。 笑死普办,一個胖子當(dāng)著我的面吹牛工扎,可吹牛的內(nèi)容都是我干的徘钥。 我是一名探鬼主播衔蹲,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呈础!你這毒婦竟也來了舆驶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤而钞,失蹤者是張志新(化名)和其女友劉穎沙廉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臼节,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撬陵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了网缝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巨税。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖粉臊,靈堂內(nèi)的尸體忽然破棺而出草添,到底是詐尸還是另有隱情,我是刑警寧澤扼仲,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布远寸,位于F島的核電站抄淑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏驰后。R本人自食惡果不足惜肆资,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倡怎。 院中可真熱鬧迅耘,春花似錦、人聲如沸监署。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钠乏。三九已至栖秕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晓避,已是汗流浹背簇捍。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留俏拱,地道東北人暑塑。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像锅必,于是被迫代替她去往敵國和親事格。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 翻譯自“Collection View Programming Guide for iOS” 0 關(guān)于iOS集合視...
    lakerszhy閱讀 3,830評論 1 22
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫搞隐、插件驹愚、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評論 4 62
  • 我和大部分喜歡追憶純真美好學(xué)生時代的同齡人最大的不同逢捺,是很早就開始期待工作。 渴望早日掙脫學(xué)校的束縛 渴望離開被安...
    寧愿這樣_閱讀 391評論 0 0
  • 馬超不見了癞季!月竹吃了一驚劫瞳,一個成年人怎么會無緣無故的就突然消失了?月竹被嚇得連連后退绷柒,直到撞到莫離她才停下來...
    離漆閱讀 252評論 0 2
  • 終于等到你志于,還好我沒放棄——我最愛的周末! 西安乃13朝古都辉巡,今天過去恨憎,果然名不虛傳,歷史底蘊(yùn)深厚,人文景觀優(yōu)美憔恳。...
    小隨意呀閱讀 158評論 0 1