2013-01-09 21 views
5

Ben şeffaf backgroundColor ile UITableView sahip şeffaf alanlarda dokunuşlara tepki vermez, ve hücreler içindekiUITableView

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
    self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, CGRectGetWidth(self.contentView.frame), 180)]; 
    self.label.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    self.label.text = @"test"; 
    [self.contentView addSubview:self.label]; 
    } 
    return self; 
} 

Her satır 200 yüksekliğe sahiptir aşağıdaki kodla başlatılır ve Tüm hücreyi doldur. Her hücre arasında şeffaf bölümler olacaktır. Bu saydam kısımlara dokunarak tabloyu kaydırmaya çalıştığımda, dokunuşlar tamamen yok sayılır. IOS5'ten itibaren, görünümlere dokunmanın görmezden gelineceğinin farkındayım. Bunu çözmek için ne yapabilirim?

şeyler ben çalışmadığını denedim:

şeffaf ayarlanması veya gizli veya alfa = 0 UIView tableView

aynı anlaşmanın sahte arka plan olarak hareket etmek, dokunuşlar göz ardı edilir .

tableView üstüne bir sınıflandırma UIView oluşturma ve sınıflandırma UIView olarak tableView kullanan nextResponder

Görünüşe UITableView touchesBegan/iptal/erdi/taşınmış, bu yüzden bu işe yaramazsa kullanmaz. Benim de yöntemlerimi UITableView da kaydırmak akıllıca olduğunu düşünmüyorum. tableView ait backgroundColor Ayar

[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1] I Hâlâ görünüyorsa, bunu yapmak istemiyorum.

Özetle, Saydam bölümden kaydırma işlemini başlattığımda bile tabloyu kaydırmak için ne yapabilirim?

+0

Sevgili @Augustine, görevinizi diğer delege kaydırma yöntemleriyle gerçekleştirebilirsiniz ("UIScrollview" içinde kullanılabilir). "TouchesBegan" yöntemiyle çalışmak istediğiniz için biraz ışık atabilirsiniz. –

+0

Dokunmuş alanın şeffaf olması nedeniyle göz ardı edilmeden önce dokunuşları engellemek için TouchBegan'ı kullanabileceğimi düşünüyordum ama görünüşe göre işe yaramadı. –

+0

scrollViewDidScroll'u yerleştirmeyi ve scrollViewDillBeginDragging'i seçmeyi denedim: tableView temsilcisinde, ancak saydam bölümden kaydırma işlemini başlattığımda hiçbiri çağrılmıyor. PS Anahtar kelimelerin gri arka planını nasıl belirlersiniz? UIScrollview için yaptığınız gibi ve yorumunuza dokunuyor. –

cevap

0

Önce hücreyi tamamen dolduracak şekilde metin içermeyen bir etiket (veya bir görünüm) oluşturursunuz. Ardından metninizle yeni bir etiket oluşturun ve bunu ilk görünümün bir alt görünümü olarak ekleyin.

+0

Çalışmazken, maalesef hala göz ardı edilir. ilk görünümde 'backgroundColor' için bir '[UIColor clearColor]' vardır –