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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Ampisound

    Ampisound

    12 Kasım 2006
  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013