2014-06-18 63 views
0

如何突出顯示僅適用於特定時間段的uitableviewcell而不選擇它?我需要保持一個單元格突出顯示,假設3秒鐘,然後得到高亮顯示。基本上我正在開發一種書籍類型的應用程序,其中單元格與音頻同步。我已經填充tableviewcells與文本,我也有多久保持一個單元格突出顯示的時間。在特定時間突出顯示tableviewcell

+1

你知道如何突出顯示一個單元嗎?你知道如何不注重細胞嗎?你知道如何使用NSTimer嗎?發佈你已經嘗試和研究的內容。 – rmaddy

+0

我會說,保持爲特定的跨度選擇單元格,然後取消選擇它。如果這變得困難,你總是可以reloadTableview,在cellforRowAtIndexPath中添加一個布爾值來確定該單元格是否應該突出顯示或不......但我更喜歡前者後者 – Debanjan

+0

@rmaddy是的,我知道如何突出顯示細胞和使用計時器。但我不知道選擇一個單元。使用[cell setHighlighted:YES animated:YES];在WillDisplay委託方法將導致所有單元格突出顯示,但我如何選擇單個單元格記住我正在使用主 - 細節視圖控制器。我也創建了一個自定義單元格,用於爲填充數據聲明單元格的標籤。我應該在客戶單元類中聲明定時器嗎? – Asif

回答

0

用於設置UITableViewCell的高亮顯示狀態的API是setHighlighted:animated:,所以假設您只需要簡單的突出顯示,那麼工作就完成了一半。

使用UITableViewDelegate方法tableView:willDisplayCell:forRowAtIndexPath:,通過您在子類中定義的某種方法通知單元格它已變爲可見。該方法將導致單元格自身突出顯示並啓動計時器,只要您希望單元格保持突出顯示。定時器啓動時,使單元格移除高光。

你當然要警惕定時器剩餘積極的,如果一個小區卷軸拿出來看,所以無效計時器,並在prepareForReuse:

+0

如果我聲明[cell setHighlighted:YES animated:YES];在willDisplayCell委託方法中,它肯定會突出顯示所有單元格。但正如你所說,我可以在子類中聲明一些方法,並使用定時器調用此方法,我不確定如何通過單個單元格參數來選擇單個單元格用於此目的? (我很抱歉,如果我已經問過愚蠢的問題,我對編程頗爲陌生) – Asif

+0

好的。如果您不想突出顯示每個單元格,則可能導致單元格發生這種情況。只需使用cellForRowAtIndexPath:當您決定需要與某個indexPath對應的單元格時,獲取單個單元格,然後將該消息發送到該單元格以導致高亮/反高亮。 cellForRowAtIndexPath:可以使用(除了作爲表視圖使用的方法之外)。 –

0

重置高亮度狀態,我認爲你應該讓自定義的UITableViewCell類。當單元格將被初始化時,使用具有特定時間間隔的NSTimer。 (NSTimeInterval)秒目標:(id)目標選擇器:(SEL)aSelector userInfo:(id)創建一個自定義方法並將它傳遞到下面的NSTimer方法中作爲選擇器(在自定義單元格類中) -

[NSTimer timerWithTimeInterval: userInfo重複:(BOOL)重複]

在選擇器方法中,您可以設置tableViewCell背景顏色以突出顯示它。