作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个刷新按钮,它执行一个函数来发起请求并接收响应。在解析响应时,我正在更改我上次更新的文本,以使用户了解正在发生的事情。我希望在“程序”运行时让刷新按钮成为 uiactivityindicator。我怎样才能做到这一点?这是我的 Storyboard的屏幕截图,可帮助您了解设置。让我知道我是否可以提供其他任何东西。谢谢!
下图显示了我如何通过右侧的模拟指标下拉列表创建底部栏。
编辑:
这是我从标记的答案中使用的更改代码。
// Create UIActivityIndicator UIBarButtonItem
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[activityView startAnimating];
UIBarButtonItem *loadingView = [[UIBarButtonItem alloc] initWithCustomView:activityView];
// Toolbar with LoadingView and LastUpdatedTitle with Flex Spacing
[self.navigationController.toolbar setItems:(NSArray *)[NSArray arrayWithObjects: loadingView, self.flexSpaceOne, self.lastUpdated, self.flexSpaceTwo, nil]];
当我想改回它时,我只需使用相同的 setItems:arrayWithObjets:
方法“重置”我的项目。除了那个时候我会用 self.refreshButton 改变加载 View 。
最佳答案
定义一些 ivar 来访问您的工具栏及其项目:
NSMutableArray *toolbarItems;
IBOutlet UIToolbar *toolbar;
然后,在您开始任务的方法中,
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 25, 25)];
UIBarButtonItem *loadingView = [[UIBarButtonItem alloc] initWithCustomView:activityView];
[toolbarItems replaceObjectAtIndex:0 withObject:loadingView];
toolbar.items = toolbarItems;
完成后执行相反的操作,再次添加刷新按钮。
关于ios - iPhone : How can I have my refresh UIBarButtonItem change to UIActivityIndicator while task is running?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387699/
我是一名优秀的程序员,十分优秀!