SORU
12 ŞUBAT 2011, CUMARTESİ


iOS:'In ':' vs drawRect katman'In delagate 'drawLayer:içerik:' UİView Kullanarak;

UIView bir alt sınıfı olan bir sınıf var. CALayer temsilci bir yöntem olan drawLayer:inContext: uygulayarak drawRect yöntemi uygulayarak veya görünümü içinde bir şeyler çizmek mümkün duyuyorum.

İki sorum var:

  1. Nasıl kullanmak için hangi karar? Her biri için bir senaryo var mı?
  2. Eğer ben uygulamak drawLayer:inContext:, (drawRect değil, en azından bildiğim kadarıyla koyarak bir kesme söyler), bile bilmiyorum atamak benim görünüm olarak CALayer temsilci kullanarak:

    [[self layer] setDelegate:self];

    nasıl temsilci yöntem ise benim örnek katmanın temsilci olarak tanımlanır eğer çağrılmaz? ve ne olursa mekanizması drawLayer:inContext: çağrılırsa çağrıldığını drawRect engeller?

CEVAP
12 ŞUBAT 2011, CUMARTESİ


Nasıl kullanmak için hangi karar? Her biri için bir senaryo var mı?

Her zaman drawRect:, kullanmak ve asla CALayer UIView çizim olarak bir temsilci.

nasıl temsilci yöntem ise benim örnek katmanın temsilci olarak tanımlanır eğer çağrılmaz? ve ne olursa mekanizması drawLayer:inContext: çağrılırsa olarak adlandırılan olmaktan drawRect engeller?

UIView her örneği desteğini CALayer çizim temsilci. [[self layer] setDelegate:self]; hiçbir şey yapmak gibiydi. Gereksiz. drawRect: yöntemi etkili bir manzara katmanı için çizim temsilci yöntemi. DAHİLİ olarak, UIView uygular kendi şeyler yapıyor ve sonra da drawRect: çağrıları 19**. Hata ayıklayıcıda görebilirsiniz:

drawRect: stacktrace

Bu drawRect: drawLayer:inContext: uygulandığında çağrıldı neden olur. Asla UIView alt sınıf bir özel CALayer çizim temsilci yöntemlerden birini uygulamak gerekir yüzden. Ayrıca asla herhangi bir görüş, başka bir katman için çizim temsilci olun. O şeyler her türlü neden olur.

Eğer CGContextRef erişim gerekiyor çünkü drawLayer:inContext: uygulama UIGraphicsGetCurrentContext() arama drawRect: senin içinden alabilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • BioHunta

    BioHunta

    28 Mayıs 2006
  • kndx

    kndx

    11 Mart 2006