Bir UIBarButton'a bir UIActivityIndicatorView döndürücü dairesi nasıl eklerim, böylece bir kullanıcı gezinme çubuğundaki bu düğmelerden birine dokunduğunda, yükleme gerçekleşirken bir döndürücü görürler?UIBarButton'a UIActivityIndicatorView ekleme
cevap
(örn: Eğer gezinme çubuğu üzerinde yenile düğmesini olabilir) - Özel bir görünüm UIActivityIndicatorView
olmak ile yeni UIBarButtonItem
oluşturabilirsiniz:
uiBusy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
uiBusy.hidesWhenStopped = YES;
[uiBusy startAnimating];
[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];
Swift Amaç-Cı
let uiBusy = UIActivityIndicatorView(activityIndicatorStyle: .White)
uiBusy.hidesWhenStopped = true
uiBusy.startAnimating()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: uiBusy)
Bu, 'un üzerine çıkma tekerleğinin üzerine yazar. İşiniz bittiğinde, rightBarButtonItem
'u yeniden oluşturun.
UIActivityIndicatorView bir tür görünümdür. Çerçevesini düğmenizin içinde olacak şekilde ayarlayın ve UIBarButton'un görünüm hiyerarşisine eklemek için -addSubview öğesini kullanın.
bunu (muhtemelen ölçekleme yoluyla) alana sığacak ve ortalamak yapmak denemek zorunda beri, basitleştirerek ...
yalancı kod i Xcode bunu kontrol edecek değilim, ama bir şey Bunun gibi:
UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] init];
act.frame = CGMakeRect(3,3,25,25);
[myBarButton addSubview:act];
[act release];
'UIBarButtonItem'' UIView' alt sınıfı değildir ve 'addSubview:' içermez. UIBarButtonItem * myBarButton = [UIBarButtonItem alloc] initWithCustomView: act]; 'yerine veya' myBarButton.customView = act; 'gibi bir şey yapmalısınız. –
Aslında etkinlik göstergesi araç çubuğu öğesi olarak eklenmez. Mevcut görünümün bir alt görünümüdür.
UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[act setCenter:CGPointMake(20, 20)];
[act startAnimating];
[self.view addSubview:act];
-(void)dealloc
numaralı belgeden çıkarmayı unutmayın. Bir gezinme çubuğu düğmesini aktivite tekerleği göstermeye çalışıyorsanız
Etkinlik göstergesini kullanma hakkında daha fazla bilgi burada bulabilirsiniz: http://stackoverflow.com/questions/593234/how-to-use-activity-indicator-view-on-iphone –
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
Yeri aşağıdaki nereye kadar gereklidir:
[activityIndicator startAnimating];
[activityIndicator stopAnimating];
bunu kullanın Yöntemleri
-(void)startAniatingActivityIndicator{
@try {
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.frame = CGRectMake(self.window.frame.size.width-30, 32.5, activityIndicator.bounds.size.width, activityIndicator.bounds.size.height);
[self.window addSubview:activityIndicator];
[activityIndicator startAnimating];
[self.window bringSubviewToFront:activityIndicator];
}
@catch (NSException *exception) {
}
@finally {
}
}
-(void)stopAniatingActivityIndicator{
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
activityIndicator = nil;
}
'[self.navigationItem.rightBarButtonItem initWithCustomView: uiBusy]; '' bana çok tehlikeli görünüyor. Ben, emotality'ın yanıtına göre self.navigationItem.rightBarButtonItem = [[UIBarButtonItem ayırma] initWithCustomView: uiBusy]; –
Kayıt için: Genellikle 'uiBusy.activityIndicatorViewStyle = .gray' – Jeremy
ayarlamak istiyoruz uiBusy: 'private var uiBusy: UIActivityIndicatorView { erişmek için hesaplanmış özellik kullanıyorum eğer busyView = self.navigationItem.rightBarButtonItem? .customView olarak?UIActivityIndicatorView { dönüş busyView } başka { izin uiBusy = UIActivityIndicatorView (activityIndicatorStyle: .white) uiBusy.hidesWhenStopped = Gerçek uiBusy.activityIndicatorViewStyle = .Gray self.navigationItem.rightBarButtonItem = UIBarButtonItem (customView: uiBusy) dönüş uiBusy } } ' – Jeremy