ios—自定義 UITableViewCell 時在溢出菜單中顯示/隱藏輔助功能元素饰躲、ARC牙咏、內(nèi)存管理和 performSelectorInBackground、檢查 NSMutableArra...

ios - 打開自定義 UITableViewCell 時在溢出菜單中顯示/隱藏輔助功能元素

我正在自定義 UITableViewCell 類中實現(xiàn)輔助功能嘹裂。我有一個相當簡單的溢出菜單妄壶,里面有幾個按鈕,這些按鈕是隱藏的寄狼,直到按下一個省略號按鈕滑動打開并關閉溢出丁寄。

在我的單元格初始化程序中,我將 overflowContainer 的 accessibilityElementsHidden 設置為 YES。這似乎有效伊磺,當使用 VoiceOver 滾動瀏覽時盛正,這些 View 將被跳過。

然后屑埋,當打開單元格時豪筝,在 UIView 動畫的完成處理程序中,我將同一 overflowContainer 的相同 accessibilityElementsHidden 設置為不摘能。這似乎沒有任何效果壤蚜,那些元素仍然被跳過。

我也嘗試過在更改 accessibilityElementsHidden BOOL 之前/之后/之后發(fā)布 UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)徊哑,但這也會出現(xiàn)對情況沒有影響袜刷。

基本上,我想在特定點對幾個 UIView 實例切換 accessibilityElementsHidden莺丑。誰能告訴我我可能做錯了什么著蟹?

這是我在溢出打開時觸發(fā)的代碼:

- (void)cellOverflowDidShow:(MyCell *)cell
{
    self.overflowContainer.isAccessibilityElement = YES;
    self.firstButton.isAccessibilityElement = YES;
    self.secondButton.isAccessibilityElement = YES;
    self.thirdButton.isAccessibilityElement = YES;
    UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.firstButton);
}

我在關閉單元格時觸發(fā)相反的操作(將所有設置為 NO 并再次發(fā)布通知)。在初始化單元格時梢莽,我設置的是:

self.overflowContainer.isAccessibilityElement = NO;
完全不知道為什么它不應該工作萧豆,看來我做的一切都是 100% 正確的。如果我不在初始化程序中設置該行昏名,按鈕將全部顯示為可訪問(始終)涮雷。因此,第一個調用(無論是 YES 還是 NO)似乎都有效轻局,但任何后續(xù)調用都將被忽略洪鸭。

最佳答案

在可見狀態(tài)下,您將溢出容器聲明為可訪問性元素仑扑。因此览爵,VoiceOver 將允許用戶聚焦它而不是導航子元素。不要切換它是否是輔助功能元素镇饮,而是將 self.overflowContainer.isAccessibilityElement 設置為 NO 并切換其子元素 firstButton蜓竹、secondButton 和 thirdButton 的輔助功能。

設置子元素可訪問性的簡寫是accessibilityElementsHidden储藐。嘗試在 View 出現(xiàn)時將 self.overflowContainer.accessibilityElementsHidden 設置為 NO俱济,在 View 消失時將其設置為 YES。

無論如何钙勃,您可能仍然需要觸發(fā)布局更改通知蛛碌。

objective-c - Objective-C - ARC、內(nèi)存管理和 performSelectorInBackground肺缕?

ARC 是否不再需要在后臺線程中調用的方法上使用 @autoreleasepool左医?除非 doStuff 用@autorelease 池包裝授帕,否則以下代碼假設會導致內(nèi)存泄漏,但是當我運行儀器時浮梢,它顯示用戶已分配并在運行循環(huán)結束時被釋放跛十。

- (IBAction)buttonClicked:(id)sender {
    [self performSelectorInBackground:@selector(doStuff) withObject:nil];
}

- (void)doStuff {
    User *user = [[User alloc] init];
    NSLog(@"%@", user);
}

最佳答案

雖然在 NSThread 的實現(xiàn)中可能暗示存在一個自動釋放池,但文檔中沒有這樣的保證秕硝。相反芥映,文檔明確指出:

performSelectorInBackground:withObject:

The method represented by aSelector must set up the thread environment just as you would for any other new thread in your program.

Threading Programming Guide

If your application uses the managed memory model [MRC and ARC, as opposed to Garbage Collection], creating an autorelease pool should be the first thing you do in your thread entry routine.

結論:雖然在某些特定情況下可能存在自動釋放池,但不建議依賴這一事實远豺。這是未記錄的行為奈偏,可能會隨著操作系統(tǒng)的每次發(fā)布或其他情況而改變。通常應避免在運輸代碼中使用躯护。

iphone - 如何檢查 NSMutableArray 是否包含值(null)惊来?

我有一個 NSMutableArray 實例,其中包含“N”個對象棺滞,我想檢查 NSMutableArray 是否包含(null)或任何其他值裁蚁。

在 NSString 中有一個名為 isEqualToString: 的方法 NSMutableArray 是否有類似的方法?

否則继准,我該怎么做枉证?

最佳答案

NSMutableArray 只能包含非nil 對象。打印為 (null) 的對象通常為 nil移必。

父類(super class)方法 containsObject: 會告訴您特定的非 nil 對象是否在數(shù)組中室谚。請注意,這僅在根據(jù) isEqual: 對象相同時才有效崔泵。

青山不改秒赤,綠水常流,謝謝大家管削!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載倒脓,如需轉載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末含思,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甘晤,更是在濱河造成了極大的恐慌含潘,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件线婚,死亡現(xiàn)場離奇詭異遏弱,居然都是意外死亡,警方通過查閱死者的電腦和手機塞弊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門漱逸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泪姨,“玉大人,你說我怎么就攤上這事饰抒“估” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵袋坑,是天一觀的道長仗处。 經(jīng)常有香客問我,道長枣宫,這世上最難降的妖魔是什么婆誓? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮也颤,結果婚禮上洋幻,老公的妹妹穿的比我還像新娘。我一直安慰自己翅娶,他們只是感情好鞋屈,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著故觅,像睡著了一般厂庇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上输吏,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天权旷,我揣著相機與錄音,去河邊找鬼贯溅。 笑死拄氯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的它浅。 我是一名探鬼主播译柏,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姐霍!你這毒婦竟也來了鄙麦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤镊折,失蹤者是張志新(化名)和其女友劉穎胯府,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恨胚,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡骂因,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赃泡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寒波。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乘盼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俄烁,到底是詐尸還是另有隱情绸栅,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布猴娩,位于F島的核電站阴幌,受9級特大地震影響,放射性物質發(fā)生泄漏卷中。R本人自食惡果不足惜矛双,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蟆豫。 院中可真熱鬧议忽,春花似錦、人聲如沸十减。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帮辟。三九已至速址,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間由驹,已是汗流浹背芍锚。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔓榄,地道東北人并炮。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像甥郑,于是被迫代替她去往敵國和親逃魄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

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