2009-11-13 19 views
1

有什麼辦法可以禁用UITableView行的「選擇性」嗎?禁用iPhone錶行

例如:我想在特定時間與某位設計師預約剪頭髮。顯示給用戶的是以半小時爲增量的時間列表,但不可用時間呈灰色/不可選。

回答

6

是的,請將selectionStyle設置爲不應選爲UITableViewCellSelectionStyleNone的任何單元格。

如果您在單元格上使用的是reuseIdentifier,請務必將可選的單元格設置爲UITableViewCellSelectionStyleBlue

您還需要覆蓋didSelectRowAtIndexPath,以便忽略具有UITableViewCellSelectionStyleNone樣式的單元格。

+1

我相信這隻會改變單元格從藍色(默認)變爲無時的顏色 - 您仍然需要過濾掉didSelectRowAtIndexPath方法中的水龍頭,並且如果您希望該行變灰,您需要通過更改背景和/或字體顏色(或者可能在單元格內容的頂部添加半透明視圖),在cellForRowAtIndexPath方法中自行處理該問題。 – jasondoucette 2009-11-13 16:48:42

+0

我該如何過濾水龍頭以便didSelectRowAtIndexPath當禁用的行被按下時,動作不會被觸發? – rson 2009-11-13 17:05:58

+1

這取決於你如何設置事情,但在didSelectRowAtIndexPath內部,你會知道表格部分([indexPath部分])和行([indexPath row]),並且從那裏你可以將它映射到你的應用數據來確定該行是否已啓用(在這種情況下,您將執行某些操作)或禁用(在這種情況下,您什麼也不做) – jasondoucette 2009-11-13 17:56:35

0

實現:

- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

做這個方法裏面沒有對應該只讀行。

+0

這仍然會突出顯示所點擊的行。你需要在我的回答中設置它的風格。 – 2009-11-13 16:58:08