SORU
19 Temmuz 2011, Salı


UİTableViewCell küme hücre seçildiğinde kaybolur

Kullanıcı, diyelim ki, 10 renk (ürün bağlı) arasında seçebileceğiniz bir renk seçici, bir tablo görünümü oluşturuyorum. Kullanıcı, diğer seçenekleri de seçebilirsiniz (sabit disk kapasitesi gibi, ...).

Tüm renk seçenekleri kendi tableview kendi bölümün içinde.

Bu textLabel sol gerçek renk gösteren küçük bir kare göstermek istedim.

Şimdi basit bir kare UİView ekliyorum, bu gibi: doğru arka plan rengi verir

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RMProductAttributesCellID];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:RMProductAttributesCellID] autorelease];
        cell.indentationWidth = 44 - 8;

        UIView *colorThumb = [[[UIView alloc] initWithFrame:CGRectMake(8, 8, 28, 28)] autorelease];
        colorThumb.tag = RMProductAttributesCellColorThumbTag;
        colorThumb.hidden = YES;
        [cell.contentView addSubview:colorThumb];
    }

    RMProductAttribute *attr = (RMProductAttribute *)[_product.attributes objectAtIndex:indexPath.section];
    RMProductAttributeValue *value = (RMProductAttributeValue *)[attr.values objectAtIndex:indexPath.row];
    cell.textLabel.text = value.name;
    cell.textLabel.backgroundColor = [UIColor clearColor];

    UIView *colorThumb = [cell viewWithTag:RMProductAttributesCellColorThumbTag];
    colorThumb.hidden = !attr.isColor;
    cell.indentationLevel = (attr.isColor ? 1 : 0);

    if (attr.isColor) {
        colorThumb.layer.cornerRadius = 6.0;
        colorThumb.backgroundColor = value.color;
    }

    [self updateCell:cell atIndexPath:indexPath];

    return cell;
}

Bu sorun olmadan Güzel Görüntüler.

Seçtiğimde o benim tek sorun bir "renk" satır sırasında fade-mavi seçim animasyon, özel benim UİView (colorThumb) gizlidir. Deselection animasyon/seçim bitmeden kısa bir süre sonra tekrar görünür oluyor, ama bu çirkin bir obje oluşturur.

Ben bunu düzeltmek için ne yapmalıyım? Ben doğru yerde küme Ekle değil mi?

(Hiçbir şey didSelectRowAtİndexPath içinde özel bir şey yok, sadece hücrenin bir onay kutusu ya da bir şey, ve mevcut indexPath seçimini kaldırmak) için aksesuar değiştirme.

CEVAP
19 Temmuz 2011, Salı


Tablo görünümünü hücre otomatik olarak vurgulanmış devlet için içeriği görüntülemek içindeki tüm görünümler arka plan rengini değiştirir çünkü. UIView renk çizmek için sınıflara veya özel 1x1 px gergin görüntü ile UIImageView kullanarak düşünebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • metal571

    metal571

    30 Mayıs 2006
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008