2010-05-02 6 views
6

Bu oldukça iPhone kıldır. Bir kütüphanede çalışıyorum ama problemimi çok basit bir kodla daralttım. Bu kod 50x50 boyutunda bir görünüm yaratır, birkaç dereceden bir dönme dönüşümü uygular, sonra çerçeveyi birkaç kez aşağı kaydırır. Sonuç 50x50 görünümü artık çok daha büyük görünüyor. YaniBir dönüşüm kullanarak döndürün, ardından çerçeve kaynağını değiştirin ve genişler mi?

// a simple 50x50 view 
UIView *redThing = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)]; 
redThing.backgroundColor = [UIColor redColor]; 

[self.view addSubview:redThing]; 

// rotate a small amount (as long as it's not 90 or 180, etc.) 
redThing.transform = CGAffineTransformRotate(redThing.transform, 0.1234); 

// move the view down 2 pixels 
CGRect newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height); 
redThing.frame = newFrame; 

// move the view down another 2 pixels 
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height); 
redThing.frame = newFrame; 

// move the view down another 2 pixels 
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height); 
redThing.frame = newFrame; 

// move the view down another 2 pixels 
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height); 
redThing.frame = newFrame; 

, halt ne olup bittiğini: Burada

kodu? Şimdi, görünümü çevirme dönüşümünü uygulayarak hareket ettirirsem, gayet iyi çalışır. Ama bu yapmak istediğim bir şey değil ve bu zaten çalışmalıdır.

Herhangi bir fikrin var mı? UIView belgelerine

+0

Belki dönüşümler vardiyalardan sonra uygulanıyor mu? – Artelius

cevap

14

:

yerine sınırları ve merkez özelliklerini kullanmak, tesiste ayarlanır dönüşümü ise; aksi halde, frame özelliğine yapılan değişiklikleri animasyonun gerçek konumunu doğru olarak yansıtmaz.

Uyarı: Dönüşüm özelliği kimlik dönüşümü değilse, bu özelliğin değeri tanımsızdır ve bu nedenle yoksayılmalıdır. Bir transform ayarlandığında başka deyişle

, ben frame özelliğinin dikkatli olacaktır.

+1

Vay. Teşekkürler ... dokümanlar bunu görmedim. Şaşırtıcı. – ZaBlanc

+0

@ZaBlanc, bu doğru cevap ise, bu şekilde işaretlemelisiniz. –

+0

Bitti. Sadece 5 dakika önce onay işareti hakkında öğrendim. Şimdi tüm eski yazılarda bunu telafi etmek. ;-) – ZaBlanc

İlgili konular