2011-04-14 26 views
7

Verilerimi iPad'de bir ızgarada görüntülemek için AQGridView kullanıyorum. Her hücre bir UIView alt sınıftır ve tipik olarak, aynı anda görüntülenen 18 hücre vardır.UIView: Performans Sorunları Olmadan Yuvarlak Köşeler

Bu hücrelere yuvarlak köşe eklemek istiyorum, bu nedenle ilgili katmanların (yani, ana UIView katmanının ve bir alt görüntünün katmanı) cornerRadius özelliğini ayarlayın. Ancak, bu performans sorunları ile sonuçlanır ve kaydırma artık pürüzsüz değildir. shadowOpacity gibi diğer CALayer özelliklerini kullanırken, bu gerçekleşmez.

Yuvarlatılmış köşe eklemek için başka yollar var mı (bir görüntünün kullanılması dışında)? Yoksa yanlış bir şey mi yapıyorum?

cevap

27

Ayrıca bir UIImageView alt görünümü içeren bir görünümün katmanı üzerinde cornerRadius kullanırken büyük bir performans isabet gördüm. Rasterleştirme bu sorunu çözdü:

+2

tam anlamıyla bana zamanımın tonunu kurtardın! :) –

+0

Bunu daha önce büyük bir başarı ile kullanmıştım. Bununla birlikte, köşeleri tüm görünümde yuvarlamak, tüm görünümün kalitesinde bir miktar bozulmaya neden olur: https://skitch.com/franklinwebber/8q8c2/ios-simulator – burtlo

+18

Ancak, sorunun rasterleştirmenin çok düşük gerçekleştiğini fark ettim bir çözünürlük ve bu sorunu çözdü myView.layer.rasterizationScale = [[UIScreen ana ekran] ölçeği]; – burtlo

0

SetCornerRadius çağrısını yerleştirdiğiniz yer olabilir. Örneğin, bir drawRect yönteminde değil, yalnızca bir kez çağrılan bir yer olduğundan emin olun.

+0

Bu init' yöntemindedir, bu yüzden bir sorun değil. – fabian789

+1

ortak bir sorun gibi görünüyor, bkz. Http://stackoverflow.com/questions/4735623/uilabel-layer-cornerradius-negatively-impacting-performance – picciano

+0

Görüyorum. O zaman bir görüntü oluşturacağım. Yorumunuzu yanıtlayabilmeniz için bir cevaba dönüştürür müsünüz? – fabian789

İlgili konular