2010-01-12 81 views
12

您好我正在尝试让我的uitableviewcell呈现非活动状态,以便用户不能点击而只是说出单元格中的数据。我试图这样做:如何在iPhone上设置一个不可触摸的uitableviewcell sdk

UITableViewCell *cell = nil; 
if (indexPath.row < factsCount) { 
static NSString *FactsCellIdentifier = @"FactsCell"; 
cell = [tableView dequeueReusableCellWithIdentifier:FactsCellIdentifier]; 
[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

但是,单元格仍然可以单击并突出显示。

感谢您的帮助!

回答

24

要停止只是被选定的一些细胞时使用正确设置属性:

cell.userInteractionEnabled = NO; 

以及预防的选择,这也将停止的tableView:didSelectRowAtIndexPath方法:正在呼吁有它设置的单元格。

(但请注意,这将禁用细胞内的任何互动的内容 - 例如按钮 - 对于这种情况下,设置selectionStyle到UITableViewCellSelectionStyleNone和忽略的tableView:didSelectRowAtIndexPath方法:拨打该小区)

+2

这里是最好的答案 – barfoon 2011-10-01 07:15:38

+0

我注意到在某些情况下,必须明确地设置文本的颜色为黑色(或任何颜色)为防止它变成灰色,其中cell.userInteractionEnabled = NO;似乎自动地做。只是要注意的事情。 – Ryan 2011-10-06 15:48:56

+0

仅供参考如果您的单元中有按钮,它们也将被禁用。在这种情况下,你希望Ole的回答 – Jameo 2013-09-10 16:14:27

11

将单元的selectionStyle设置为UITableViewCellSelectionStyleNone

+0

细胞仍然是可点击在我执行这个之后。我用代码更新了我的问题。 – Atma 2010-01-12 18:14:16

+3

从技术上讲,单元仍然是可点击的,但用户看不到选择。当然,你还必须确保你的'tableView:didSelectRowAtIndexPath:'实现对这个特定的单元格不做任何事情。 – 2010-01-12 18:17:19

+1

如果你在单元格内有一个按钮,这是可行的解决方案 – 2013-08-16 17:14:16

4

这是可以做到用:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
4

要禁用小区选择可以实现在表视图委托-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath方法并返回零,如果你不想细胞与给定NSIndexPath被选中。
正如在其他答案禁用单元格高亮你已经指出你应该将其selectionStyle属性设置为UITableViewCellSelectionStyleNone。
还要确保你重用tableviewcells

相关问题