2011-10-27 12 views
13

ana UIView çerçeve (boyut) animasyon zaman yükseklik: Bu animasyon I sonucundaotomatik yeniden boyutlandırma çerçevesi bir çerçeve ebeveynin sınırları ayarlanır olan ve autoresizingMask esnek genişliği ayarlanır ve çocuk UIView (aşağıdaki kodu kullanılan UILabel) sahip olan bir ana UIView sahip

[UIView animateWithDuration:1.0 animations:^{ parentView.frame = CGRectMake(0, 0, 160, 240); }]; 

: özellikle, boyutu üst görünümün çerçeve animasyon ve subview animasyon bir parçası olarak boyutlandırmak için mümkün istiyorum

UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
UILabel* childLabel = [[UILabel alloc] initWithFrame:parentView.bounds]; 
childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
childLabel.textAlignment = UITextAlignmentCenter; 
childLabel.text = @"Hello"; 

UILabel’ın metnini ana görünümün yanı sıra nimasyon, böylece görsel olarak metnin (160, 240) ila (80, 120) arasında merkezlenmesini görüyorsunuz. Ancak, bunun yerine canlandırmanın o metnin konumunu derhal zaman animasyon başlar atlamak görebilmeniz Subview kare derhal, bu animasyonun sonunda olması gereken değere ayarlanır ediliyor görünmektedir.

subviews bir animasyon parçası olarak AutoResize almak için bir yolu var mı?

cevap

20

Başım ne olup bittiği konusunda tamamen kafam yok, ama asıl mesele şu ki UIKit, metni animasyonun her karesini yeniden oluşturmak zorunda kalmak istemiyor, dolayısıyla UILabel'in içeriği canlandırılamaz. Varsayılan olarak, UILabel ait contentMode özelliği olabildiğince kısa özelliği ayarlanır olarak hedef boyutunda UILabel yeniden çizme olacak, yani UIViewContentModeRedraw olduğunu.

Eğer UIViewContentModeCenter için contentMode değiştirirseniz, içeriği yeniden çizme olmayacak ve UILabel merkezli kalacaktır. büyük bilgi var

childLabel.contentMode = UIViewContentModeCenter; 
+1

. UIViewContentModeCenter aslında ihtiyacım olan şey için çalışıyor - ana görünümün çerçevesi küçülüyor veya büyürken metnin merkezde kalması için. Teşekkürler. –

+0

Yeterince büyük! Teşekkürler! – Kjuly

İlgili konular