SORU
26 EYLÜL 2012, ÇARŞAMBA


"Otomatik Düzen hala layoutSubviews" yürüttükten sonra gerekli; UİTableViewCell sınıfla

4.5 kullanarak böyle büyük mükafat ve 6, özel hücreler ile basit bir tablo görünümü ile bir uygulama geliştiriyorum iOS. İOS 5 ve altında yüzlerce kez yaptım, ama nedense yeni otomatik sistem bana çok sorun çıkarıyor.

Ben İB tablo görünümü ve prototip cep telefonum Kur, subviews ekledi ve onları temsilci ve benim veri kaynağı İBOutlets sonra Kur olarak ayarlandı. İlk hücreye aşağıdaki hatayı alıyorum cellForRowAtIndexPath, getirilen her ancak şimdi

*** Onaylama işlemi hatası -[ShopCell layoutSublayersOfLayer:], /SourceCache/UİKit_Sim/UİKit-2372/UİView.m:5776

*** Sonlandırıcı uygulaması yakalanmamış istisna 'NSİnternalİnconsistencyException', sebep: 'Otomatik Düzen hala yürütme -layoutSubviews. sonra gerekli nedeniyle Bu ShopCell uygulaması-layoutSubviews süper aramak gerekir.'

Ben hala aynı hatayı alıyorum onu da anlaşılacağı gibi yapıp süper eklemeye çalıştığımda alt telefonumu (ShopCell) ve hatta layoutSubviews bir yöntem çağrısı alet olmadım. Ben İB içinde hücreden subviews kaldırmak ve standart bir UİTableViewCell değiştirin, her şeyin beklendiği gibi, hücrelerim hiçbir veri kalmadı ama tabi çalışır.

Kaçırdığım basit bir şey olduğuna neredeyse eminim, ama herhangi bir belge ya da yanlış yaptığım şey önermek rehberi bulamıyor. Herhangi bir yardım mutluluk duyacağız.

Düzenleme:Sadece İB bir UİTableViewCell değiştirmeyi denedim ve yerde tüm subviews bırakarak, aynı hata yine.

CEVAP
27 EYLÜL 2012, PERŞEMBE


El ile kod kısıtlamaları eklerken ben de aynı sorunla karşılaştı. Kodu, aşağıdaki yapıyordum:

{
    [self setTranslatesAutoresizingMaskIntoConstraints:YES];
    [self addSubview:someView];
    [self addSubview:someOtherView];
    [self addConstraint:...];
}

Hipotez

Anladığım kadarıyla, sorun Otomatik Düzen kullanmaya başlar ve doğal olarak layoutSublayersForLayer temel uygulaması nedeniyle başarısız UİTableViewCell ** 4, devre dışı bıraktığınızda süper çağırmaz. Hopper veya başka bir aracı olan birisi bu teyit edebilir. Beri kullanıyorsun İB sen merak etmiştir bu yüzden bir sorun... çünkü İB kullanarak otomatik olarak devre dışı bırakır. translatesAutoresizingMaskIntoConstraints görünümler ekler kısıtlamaları (otomatik olarak eklemek bir genişlik ve yükseklik sınırlaması yer).

Çözüm

Benim çözüm contentView için her şeyi taşımak.

{
   [self.contentView addSubview:someView];
   [self.contentView addSubview:someOtherView];
   [self.contentView addConstraint:...];
}

Eğer bu Arayüz Oluşturucu çalışır eğer 0 emin değilim, ama eğer cep doğrudan bir şey olduğunu varsayarak) her şeyi ittir sonra çalışması gerekir. Bu sana yardımcı olur umarım!

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009