如何设置活动的指示,在导航吧?
-
21-09-2019 - |
题
我是新来的iphone发展。我想设置一个活动的指示,在导航条。我看到我活动的指示以下的导航条。我的代码就在这里
- (IBAction) gomethod : (id) sender {
xxMapSubviewcontroller = [[XxMapSubviewcontroller alloc] init];
[self.navigationController pushViewController:xxMapSubviewcontroller animated:YES];
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.frame = CGRectMake(0.0, 0.0, 20.0, 20.0);
[activityIndicator startAnimating];
[xxMapSubviewcontroller.view addSubview:activityIndicator];
}
我怎么可以把我的活动的指示,在导航吧?请帮助我。谢谢。
解决方案
我添加下面的代码段中,其中i想在导航栏的活性指示器的视图。
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[self navigationItem].rightBarButtonItem = barButton;
[activityIndicator startAnimating];
其他提示
Swift代码:
let activityIndicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let barButton = UIBarButtonItem(customView: activityIndicator)
self.navigationItem.setRightBarButtonItem(barButton, animated: true)
activityIndicator.startAnimating()
您正在创建这里新活动的指标来看,这是很好的,但你是不是指在状态栏上的活动指示灯。
要显示在状态条中的活动的指标,只需调用这样:
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
这在斯威夫特为我工作:
let activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView.init(activityIndicatorStyle: .White)
let refreshBarButton: UIBarButtonItem = UIBarButtonItem(customView: activityIndicator)
self.navigationItem.leftBarButtonItem = refreshBarButton
activityIndicator.startAnimating()
在情节串连图板:是在导航栏创建BarButtonItem
。
添加视图是你BarButtonItem
和ActivityIndicator
的儿子是你的View
的儿子。
例如WhatsApp:
//声明
let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
// viewDidLoad中
self.activityIndicator.hidesWhenStopped = true
func showIndicator() {
self.navigationItem.titleView = self.activityIndicator
self.activityIndicator.isHidden = false
}
func hideIndicator() {
self.navigationItem.titleView = nil
}
谢谢!现在我的指示器工作。
我分担同胞菜鸟一个代码示例,把这种上下文。
<强> - (无效)viewDidLoad中强>
// custom button images
UIImage *customImage = [UIImage imageNamed:@"menu24"];
UIImage *customImage2 = [UIImage imageNamed:@"search24"];
UIImage *customImage3 = [UIImage imageNamed:@"back24"];
// These are linked in my story board to Navigation Item
[self customiseBarBtnItem:[self menu_button]
customImage:customImage selector:@selector(menuPressed:)];
[self customiseBarBtnItem:[self search_button]
customImage:customImage2 selector:@selector(searchPressed:)];
[self customiseBarBtnItem:[self backButton]
customImage:customImage3 selector:@selector(backPressed:)];
//initialize the activity indicator - as @antf comment suggests for ios7
UIActivityIndicatorView *actInd=[[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
//store it as a property on the view controller
self.activityIndicator = actInd;
// this sets up activity indicator
UIBarButtonItem *progress_indicator = [[UIBarButtonItem alloc]
initWithCustomView:[self activityIndicator]];
// link custom buttons AND activity indicator in desired order to navigation bar
self.navigationItem.rightBarButtonItems =
[NSArray arrayWithObjects:
self.menu_button,
self.search_button,
progress_indicator,
nil];
//为了完整 - 这是我如何编程显示/隐藏我的背部按钮
if ( bShowBack == YES )
self.navItemBar.leftBarButtonItem = self.backButton;
else
self.navItemBar.leftBarButtonItem = Nil;
<强> //使用我与一个UIWebView活动的指标如下所以触发它强>
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[[self activityIndicator] startAnimating];
}
- (void)didFailLoadWithError:(UIWebView *)webView
didFailLoadWithError:(NSError *)error
{
[[self activityIndicator] stopAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *) webView
{
[[self activityIndicator] stopAnimating];
}
在夫特,我做了以下:
启用:强> UIApplication.sharedApplication().networkActivityIndicatorVisible = true
停用强> UIApplication.sharedApplication().networkActivityIndicatorVisible = false
Swift
- 连接
UIBarButtonItem
从storyboard
要yourViewController
- 删除
week
从其定义,如:@IBOutlet var btNavigaitonRight: UIBarButtonItem!
使用这些方法对于启动和停止活动的指标:
var activityIndicator = UIActivityIndicatorView() func startBarButtonIndicator() { activityIndicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 20, height: 20)) activityIndicator?.color = .gray let barButton = UIBarButtonItem(customView: activityIndicator!) self.navigationItem.setRightBarButton(barButton, animated: true) activityIndicator?.startAnimating() } func stopBarButtonIndicator() { activityIndicator?.stopAnimating() navigationItem.setRightBarButton(btNavigaitonRight, animated: true) }
我与响应一个类似的问题这里: iphone - 编程修改导航栏按钮活动的指标
我想改变在导航栏到活动的指标,然后再返回的刷新按钮。
尝试:self.navigationItem.leftBarButtonItem.customView = your_view
我试图使用它现在代码中提到由战士没有工作的完全一样。我不得不改变初始化的activityIndicator:
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
随着这一变化,它应按预期工作。