2009-10-23 89 views
0

我已經使用默認的Xcode模板創建了一個UItableView,並將其配置爲顯示五行。 我選擇了桌子上的第一個單元格。當我選擇另一個單元格時,我注意到第一個單元格保持選中狀態,直到我將手指從第二個單元格移開。UITableView允許兩個單元格同時選擇樣式

樣本: http://img190.imageshack.us/img190/7184/cellsz.jpg

我想成爲沾不上觸摸刪除選定的單元格。 我在網絡和蘋果文檔中搜索,但我沒有找到當用戶觸摸屏幕進行選擇時調用哪個方法。

有沒有人有關於此的一些信息?

+0

Duplicate:http://stackoverflow.com/questions/308081/is-it-possible-to-confugure-a-uitableview-to-allow-multiple-selection – rein 2009-10-23 14:09:35

回答

2

最後我成功抑制了這種雙重選擇效應。

當系統檢測到內部事件觸發時,將選中一個單元格。 在選中之前,單元格會有一個突出顯示的狀態,這些狀態會在觸摸時顯示。

要解決此問題,我必須在我的自定義UITableViewCell中重寫- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated方法,並且在此方法中不執行任何操作。

這樣,表格將永遠不會同時具有兩個選定的樣式單元格。

報價編輯

該解決方案是足夠多的我,但 之後,在沒有解決我的第一次請求 改變細胞的選擇「觸摸」 事件,而不是「摸了」的事件。

好吧......我認爲這是不可能的。如果我們有這個選項,當我們只想在tableview中滾動時,我們可以選擇一個單元格。

1

我不知道你的問題的答案,但有優惠。您可以在

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

委託方法標記選定一行勾選。然後致電[tableView deselectRowAtIndexPath:indexPath]

+0

呃......我還不夠清楚。我道歉。 實際上在我的情況下總是有一個選中的單元格。 問題是,如果選中一個單元格,第二個單元格將具有選定的樣式,但不會被選中。 我已經嘗試過這種方法,但是當您將手指從單元格中移除而不是觸摸單元格並保留它時,將調用SelectRowAtIndexPath。 我添加了一個屏幕快照來顯示它的外觀。 http://img190.imageshack.us/img190/7184/cellsz.jpg – HiroKenshin 2009-10-23 14:37:02

+0

我的意思是,如果你只需要標記選擇的行,你可以將其accessoryType改變,例如,UITableViewCellAccessoryTypeCheckmark並調用deselectRow在委託方法。 – Morion 2009-10-23 15:08:04

0

沒有框架提供的解決方案來選擇多行。 Morion有一個很好的方法可以用checkmark來做到這一點。你也可以看看Matt Gallagher的文章this,他在那裏實現你想要的東西。

+0

我不想多個單元格選擇。我不清楚,我道歉。 我想避免兩個單元格同時具有選定的樣式。這給應用程序帶來了真實的不好看。看看我在我的文章中添加的屏幕截圖。 – HiroKenshin 2009-10-23 14:42:48

相關問題