2010-03-15 25 views
9

drawRect numaralı özel çizim kodum var, bu da bazı boyut hesaplamaları gerçekleştiriyor.'drawRect' ne zaman denir?

En erken ne zaman bu kodun yüklendiğinden emin olabilirim, ör. kapsayıcı boyutunu buna göre değiştirmek istersem? görünümü görüntülenir hemen önce

cevap

1

ya da aramak

[aView setNeedsDisplay]; 
+0

Fakat bu aşamada herhangi bir geri dönüş var mı? – Egil

+0

Hayır, bunun için drawRect yöntemine bir şeyler koymanız gerekecek. –

3

-[NSView viewWillDraw] son dakika düzeni için makul bir yerdir.

+0

bu iphone'da var mı? – Egil

+0

Sanırım viewWillAppear demek oluyor - görünüm her göründüğünde oluyor. viewWillDisappear karşılık gelen çıkış işlevidir. –

+0

Ama 'çekil' den önce ''Appear' 'denemez miydi? – Egil

2

Bazı boyutların hesaplanmasını da yapan drawRect'te bazı özel çizim kodum var.

En erken ne zaman bu kodun yüklendiğinden emin olabilirim, ör. kapsayıcı boyutunu buna göre değiştirmek istersem? Sınıfı tam olarak yükleninceye kadar bir nesne mevcut olamaz.

Eğer bir örneğiniz varsa, bunun bir örneği tamamen yüklenmiştir, çünkü eğer olmasaydı, bunun bir örneği olmazdı.

Ne zaman çağrıldığına gelince: Çizmeniz gerektiğinde buna denir. Bu, normal olarak, ihtiyaç duyulan görüntüyü gösterim olarak işaretlediyse, olay döngüsünün bir parçası olarak gerçekleşir. Bir NSView’ın gösterilmesini doğrudan söylemek mümkündür, ancak, bildiğim kadarıyla, UIViews için bu mümkün değildir.

Eğer anlatılmadan önce bir şey yapmanız gerekiyorsa, ya bunu oluşturduktan hemen sonra yapın, ya da görünümü ekran görüntüsü olarak ayarlamak üzereyseniz, bunu yapmadan önce yapın.

0

İlk customView uygulamasını yeni oluşturdum. Bu benim sorularımdan biriydi. benim drawRect yöntemimi benim pencere (veya yeniden oluşturma) oluştururken bir kez çağrıldı. Penceremi yeniden boyutlandırırken milyonlarca zaman.

İlgili konular