Gezinme çubuğunun RHS'sindeki iki düğme arasında geçiş yapmak için kodumda -(void)setEditing:(BOOL)editing animated:(BOOL)animated
yöntemini arıyorum.UINavigationBar'da düğme değişikliği nasıl yapılır?
-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
// Toggle ‘+’ and ‘Add To Order’ button.
if(editing) {
self.navigationItem.rightBarButtonItem = self.addItemButton;
}
else {
self.navigationItem.rightBarButtonItem = self.addToOrderButton;
}
}
Nerede self.addItemButton
ve self.addToOrderButton
awakefromNib
önceden tanımlanmış UIBarButtonItems, kurulum içeren Ivars vardır.
self.addToOrderButton
düğme self.addItemButton
içinde bir daha sonra önemli ölçüde daha geniş olan, bu yüzden düzenleme durumundaki değişikliği tetiklendiğinde I lhs editButtonItem
standart dokunarak (iki genişlikleri arasında ince bir animasyon olduğu onların istiyorum navigasyon.
Ben düğme değişikliği, ancak onların yerine daha üst sol ziyade tek tek yerine pozisyonları uçan ve sadece kendi genişlikleri animasyon ile animasyon yok [UIView beginAnimations:nil context:NULL];
ve [UIView commitAnimations];
ile tüm if:else
içine alırsanız.
Gezinme çubuğu öğesini nasıl canlandırırım? Böylece her bir kişi (RHS düğmesi, başlık) daha uygun, kısıtlanmış yollarda canlandırabilir mi?
[self.navigationItem setRightBarButtonItem: self.addToOrderButton animated:YES];
... sizin için Canlandıracağımız:
Yanıtı kabul ettim, tam olarak açıkladığınız şeyi yapar ve iyi çalışır. Çok teşekkürler. Bir kenara, gerçekleşen gerçek animasyonu düzeltmek için bir yöntem var mı? Burada sunulduğu gibi, bu bir çapraz solma - ki bu iyi bir şeydir - ancak metin için çapraz solgunluk ve ‘karesi için LHS düğmesinin hareketli hareketi daha da iyi olacaktır. – creednmd
SDK'da doğrudan bir yöntem yok, no. Muhtemelen bir şeyleri kendiniz uygulayabilirsiniz, ama önemsiz olacaktır (bir yöntemle yöntemi geçersiz kılmak ve bunu kendi geçişinizle değiştirmek gibi). – lxt
Dokümanları incelemeye ihtiyaç duyacağım bir şeye benziyor; Beni doğru yolda aldığın için teşekkürler. – creednmd