2013-10-07 53 views
2

我用數據填充UITableViewController,並且一些創建的單元需要被禁用,其他一些單元需要保留詳細的附件按鈕。我需要做的是禁用那些具有細節附件(他們的選擇),但離開這個細節按鈕活躍,以獲得一些信息。禁用單元,但留下詳細的附件活動

回答

1

擴大mobiletest給出的答案,我做了類似的事情。

我創建本公開指示器類型的細胞對於所述附件

cell.accessoryType = UITableViewCellAccessoryNone; 
cell.selectionStyle = UITableViewCellSelectionStyleNone; 

在UITableViewControllerDelegate方法

- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath 

我創建關於每一個小區的自定義按鈕。爲了確切地確定哪個按鈕在哪個單元格上被選中,SO上的這個answer幫助了我。

您可以選擇不更改單元格的selectionStyle,但我建議您這樣做,以便該應用程序看起來更好,並且單元格不會顯示任何內容以表明單元格可以被選中,這將更容易在用戶的可用性方面。


或者,你可以在你可以得到小區選擇的方法

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

檢查,並檢查電池的accessoryType,把你的邏輯。

UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:indexPath]; 
if (cell.accessoryType == UITableViewCellAccessoryDisclosureIndicator) 
{ 
//Your logic here 
} 

但是,這將意味着你的整個小區由以可選擇的(如果不選擇是否披露按鈕將無法正常工作),在這種情況下,這將意味着你不能自定義展開按鈕。此外,由於您的整個單元格都是可選的,因此只要用戶單擊該單元格,您的邏輯也會運行,從問題來看,這聽起來不像您想要的功能,但我可能是錯的。 :)

看看哪個適合你。希望這可以幫助!

0

是否想隱藏某些行的細節附件按鈕或禁用沒有細節附件按鈕的功能。 要禁用此功能,您可以使用didSelectRowAtIndexPath中的代碼。檢查是否有詳細的附件按鈕,如果有的話,不要做任何事情。

相關問題