"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
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!
özel durum "ben İllegalStateExcep...
Ne "android.R.düzen.simple_list_i...
Rspec: "dizisi.= = &another_array...
"webxml gerekli öznitelik" h...
Pencere Yüksekliği="Otomatik"...