İşte kurulumum: Alt ekleyici eklemek istediğim bir CALAyer var. UILabel'ı kurarak ve UILables katmanını ana katmanıma ekleyerek bu alt katmanları yaratıyorum. Tabii ki bu arka planda gezinen ağır UILabel nesnesini bırakır. Katmanı tüm içeriği ile UIView'den almak ve UIView'den kurtulmak mümkün mü?CALayer'i UIView'den kopyalamak mümkün mü?
UILabel* label;
[...]
[mainLayer addSublayer:[label.layer copy]];
[label release];
Ama UIView serbest zaman, tabakanın içeriği de kaldırılır: Zaten bu çalıştı. Bu mümkün mü yoksa UIView'in katmanı her zaman içeriğinin gösterilmesi için UIView'in kendisine ihtiyaç duyuyor mu? Katmanı, UIView boyalarının olduğu bir tür tuval olarak düşündüm. Sanırım bu varsayımda yanılıyor olabilirim :)
çoğaltmak mümkün olacaktır. UIView, onu serbest bıraktığınız için kaybolursa, neden başlangıçta bu UIView'e bağlı bir katman kullanmanız gerekir? Eğer gerçekten bir katmana ihtiyacınız varsa, UIView'e de ihtiyacınız olduğu mantıklı geliyor.Haentz kesinlikle önerdiğiniz yaklaşımı deneyebilir (ve çalışıp çalışmayacağından emin değilim), fakat bunu daha önce Core Animation kodunda görmedim. Ayrıca, Apple bunu mümkün kılmayı düşünürse, CALayer'i NSCopying ile uyumlu hale getirecekti. Bu yaklaşım işe yarayıp yaramadığını bana bildirin. –
Bir CALayer'ı kopyalamak için görebilmemin tek nedeni, aynı katmanın katlarını ekranda göstermesi gerektiğidir. Bence genellikle ilkini yarattığın gibi birden çok katmanı yaratmaya devam edersin. Yine de, ilkini yok etmeyi amaçlıyorsan neden bir kopyasını çıkaracağını anlamıyorum. Düşüncem, orijinaliyle aynı özelliklere sahip bir katmana ihtiyaç duyduğu kadar "kopya" a ihtiyaç duymamasıydı. Haklısın, muhtemelen problemin kabul edilen çözümü değil, ama nasıl çalıştığını görmek ilginç. –