Arabirimdeki düğmeleri ayırmak için aşağıdaki iki yöntemi bağladım, ancak yöntem içinde animasyon süresi bitene kadar düğmeye basamadığım "VERSION 1" düğmesine bastığımda fark ettim. Anlayışım, animasyonun ana uygulamayı engellememek için kendi iş parçacığını kullanmasıydı.animateWithDuration: animasyonlar: ana parçacığı engelle?
// VERSION 1
-(IBAction)fadeUsingBlock {
NSLog(@"V1: Clicked ...");
[myLabel setAlpha:1.0];
[UIView animateWithDuration:1.5 animations:^{
[myLabel setAlpha:0.0];
}];
}
eski stil sürümü (aşağıda) animasyon zamanlayıcısı basitçe yeniden başlamak zamanlayıcı sıfırlanır, sona ermeden önce düğmeye bastırılmış izin yok. Bunların ikisi de aynı şekilde çalışıyor mu, bir şey mi eksik veya 3.2 ile 4 arasında bir operasyon değişikliği oldu mu?
// VERSION 2
-(IBAction)fadeUsingOld {
NSLog(@"V2: Clicked ...");
[myLabel setAlpha:1.0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[myLabel setAlpha:0.0];
[UIView commitAnimations];
}
Alkış gary
Ah, docs bu seçeneği kaçırmıştı, ben onu bakacağız. Çok teşekkürler, çok takdir ediyorum. – fuzzygoat
Bunun için teşekkürler. Kahretsin, bu beni rahatsız ediyordu. Aslında varsayılan olarak açık değildir, çünkü animasyonun görüntülenmesiyle etkileşimi engeller, ancak aslında tüm kullanıcı arayüzünü engeller! – runmad
Adam, yakında iOS 5.0 ...'da düzeltildiyse bu hoş olmaz mıydı? –