2013-08-12 21 views
6

Bazı hücreleri ile bir tablo var. Her bir hücrede ayrıca bir düğme bulunur. Kullanıcı bu düğmeyi tıklattığında, hücrenin izin verilememesi, ancak düğmenin olmaması gerekir. Kullanıcı tıklanabilir olmayan bir hücrenin düğmesine tıkladığında, bu hücre tekrar tıklanabilir olmalıdır.Hücreyi tıklatılamıyor, ancak üzerinde bir düğme tıklanabilir hala tıklanabilir

cell.userInteractionEnabled = NO; 

... ama sonra düğme artık tıklanabilir değildi:

denedim.

Hazırlığınız için şimdiden teşekkür ederiz.

EDIT Yani: Bir hücreyi tıklattığımda yeni bir görünüm açılır. Ama istiyorum ki, hücre "tıklanabilir" olmadığında hiçbir işlem gerçekleşmez.

+0

selectionStyle | Number | 0

Key Path | Type | Value

0 bireysel kontroller üzerinde 'userInteractionEnabled' ayarı deneyin. –

+0

@MarcusAdams Ama bunu nasıl yapabilirim? Dekoder halkası kullanımı için – user2650439

cevap

14

Hangi yollarla? Sadece hücre seçilemez hale istiyorsanız, muhtemelen bunun için arıyorlar: seçim devre dışı bırakıldığında yürütülecek kodunuzu önlemek istiyorsanız

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

, sadece didSelectRowAtIndexPath: içindeki seçim özelliği için kontrol yöntem. Böyle bir şey:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.selectionStyle != UITableViewCellSelectionStyleNone) { 
     //(your code opening a new view) 
    } 
} 

istediğiniz zaman hala hücre seçilebilir olmasını istemiyorsanız UITableViewCellSelectionStyleNone ayarını ve UITableViewCellSelectionStyleBlue (veya UITableViewCellSelectionStyleGray) geri ayarı, bu özelliğiyle oynamak zorunda Unutmayın tekrar seçilebilmek için.

+0

+1. –

+0

Ama yine de hücreye tıklayabilirim ve yeni viewController açılır ... tanıdığım tek fark, hücre seçildiğinde renklerinin olmaması ... ya da burada yanlış bir şey mi alıyorum – user2650439

+0

Düzenlendi. Yardım edip edip etmediğini görün. –

0

Seçimi UITableViewCellSelectionStyleNone ayarını selectionStyle olarak ayarlayarak kaldırın.

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSIndexPath *indexPathForDisabledCell = [NSIndexPath indexPathForRow:0 
                   inSection:0]; 
    if([indexPath compare:indexPathForDisabledCell] != NSOrderedSame) { 
     //Do whatever you do with other cells 
    } 
} 
0

:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Ve ilk bölümde sadece ilk satır düğmesi vardır ve hiçbir şey gerekip gerekmediğini Örneğin o temsilci yönteminde seçici olabilir -tableView:didSelectRowAtIndexPath:

hiçbir şey yapmak Bu, ayrıca, Kullanıcı Tanımlı Çalışma Zamanı Öznitelikleri, TableViewCell:

kullanarak Arabirim Oluşturucusu aracılığıyla da yapılabilir.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/#//apple_ref/c/tdef/UITableViewCellStyle