SORU
11 ŞUBAT 2010, PERŞEMBE


Örtülü animasyonlar devre dışı bırakma -[CALayer setNeedsDisplayİnRect:]

-DrawİnContext bazı karmaşık çizim kodu ile bir katman var: yöntem. Yapmam gereken kullanıyorum çok setNeedsDisplayİnRect çizim miktarını en aza indirmek için çalışıyorum: sadece güncelleme için parçalar değişti. Bu mükemmel çalışıyor. Grafik sistemi benim katmanı güncellemeleri, ancak-fade çapraz bir yeni görüntü kullanarak eski geçmekte. Üzerinde anında geçiş yapmak istiyorum.

CATransaction eylemleri kapatın ve süresi sıfır olarak kullanarak denedim, ve ne iş. İşte kullanıyorum kod:

[CATransaction begin];
[CATransaction setDisableActions: YES];
[self setNeedsDisplayInRect: rect];
[CATransaction commit];

(Ben de görüntülemek için:forKey çalıştı: kCATransactionDisableActions, aynı sonuç) ile kullanmalıyım CATransaction farklı bir yöntem.

CEVAP
11 ŞUBAT 2010, PERŞEMBE


Katman uygun anahtar için bir animasyon gibi [NSNull null] dönmek için eylemleri sözlük ayarlayarak bunu yapabilirsiniz. Örneğin, kullanıyorum

NSMutableDictionary *newActions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"onOrderIn",
                                   [NSNull null], @"onOrderOut",
                                   [NSNull null], @"sublayers",
                                   [NSNull null], @"contents",
                                   [NSNull null], @"bounds",
                                   nil];
layer.actions = newActions;
[newActions release];

devre dışı bırakmak benim katmanları biri olarak boyutunu ve içeriğini katman değişiklikleri içinde alt katmanlar ekleme veya değişiklik üzerinde giriş / çıkış animasyonları belirme. contents anahtar güncellenen çizim üzerinde geçişli önlemek için aradığınız tek olduğuna inanıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • PlayStation

    PlayStation

    16 Aralık 2005
  • sinumatic

    sinumatic

    19 Aralık 2006