将UIActivityIndi​​catorView添加到UIBarButton中

qua*_*tum 31 iphone button uinavigationbar uiactivityindicatorview

如何将UIActivityIndi​​catorView微调器圆圈添加到UIBarButton中,以便当用户点击导航栏上的其中一个按钮时,他们会在加载时看到一个微调器?

fer*_*dil 46

如果您试图在导航栏按钮中显示活动轮(例如,您可能在导航栏上有一个刷新按钮) - 您可以UIBarButtonItem使用自定义视图创建一个新的UIActivityIndicatorView:

Objective-C的

uiBusy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
uiBusy.hidesWhenStopped = YES;
[uiBusy startAnimating];
[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];
Run Code Online (Sandbox Code Playgroud)

迅速

let uiBusy = UIActivityIndicatorView(activityIndicatorStyle: .White)
uiBusy.hidesWhenStopped = true
uiBusy.startAnimating()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: uiBusy)
Run Code Online (Sandbox Code Playgroud)

这会rightBarButtonItem用旋转轮覆盖你的.当你完成后,只需重新创建rightBarButtonItem.

  • `[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];`对我来说似乎很狡猾.我希望`self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:uiBusy];`按照@ emotality的回答. (7认同)

emo*_*ity 6

activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
Run Code Online (Sandbox Code Playgroud)

在需要的地方放置以下内容:

[activityIndicator startAnimating];
[activityIndicator stopAnimating];
Run Code Online (Sandbox Code Playgroud)