我在我的应用中使用了活动指示器视图。
当我点击一个按钮时,我希望活动指示器在导航栏中显示10秒然后自动隐藏。
我在视图中使用以下代码加载:
CGRect frame = CGRectMake(0.0, 0.0, 25.0, 25.0);
self.activity = [[UIActivityIndicatorView alloc]
initWithFrame:frame];
[self.activity sizeToFit];
self.activity.autoresizingMask =
(UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin);
UIBarButtonItem *loadingView = [[UIBarButtonItem alloc] initWithCustomView:self.activity];
loadingView.target = self;
self.navigationItem.rightBarButtonItem = loadingView;
在按钮操作中,我只启动指示器:
[self.activity startanimating];
但我看不到导航栏中的指示。
请告诉我我的代码是否有问题......
答案 0 :(得分:5)
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
UIBarButtonItem *itemIndicator = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[self.navigationItem setLeftBarButtonItem:itemIndicator];
[activityIndicator startAnimating];
答案 1 :(得分:0)
我不明白你为什么要使用目标(你甚至没有指定一个动作)...无论如何我只是测试了你的代码并引入了这个微小的调整。每次我想要启动活动指示器时,我都会使用这段代码:
UIActivityIndicatorView *test = (UIActivityIndicatorView*)self.navigationItem.rightBarButtonItem.customView;
[test startAnimating];
显然我不使用ivar,因为它不需要。它只是一个演员而且来自你的UIViewController,你可以非常快速地获得它。
希望它有所帮助。