Jef*_*eff 11 xcode uinavigationbar uinavigationcontroller ios
在我的应用程序中,我想在导航栏的中心添加活动指示器(标题位置).当Web服务响应完成时,它应该替换为旧标题.我的应用程序中有5个导航栏.当我在谷歌搜索时,我得到了几个代码但他们只是改变左或右按钮.任何帮助?
rde*_*mar 20
您使用导航项的titleView属性来替换导航栏的标题.因此,要添加活动指示器,请执行以下操作:
UIActivityIndicatorView *aiView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
aiView.hidesWhenStopped = NO; //I added this just so I could see it
self.navigationItem.titleView = aiView;
Run Code Online (Sandbox Code Playgroud)
如果要删除它,并再次显示标题:
self.navigationItem.titleView = nil;
Run Code Online (Sandbox Code Playgroud)
Waf*_*eln 11
pasqls的答案对我很有用,我写的很快
func showActivityIndicator() {
let activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.White)
activityIndicatorView.frame = CGRectMake(0, 0, 14, 14)
activityIndicatorView.color = UIColor.blackColor()
activityIndicatorView.startAnimating()
let titleLabel = UILabel.new()
titleLabel.text = "...Connecting"
titleLabel.font = UIFont.italicSystemFontOfSize(14)
let fittingSize = titleLabel.sizeThatFits(CGSizeMake(200.0, activityIndicatorView.frame.size.height))
titleLabel.frame = CGRectMake(activityIndicatorView.frame.origin.x + activityIndicatorView.frame.size.width + 8, activityIndicatorView.frame.origin.y, fittingSize.width, fittingSize.height)
let titleView = UIView(frame: CGRectMake(((activityIndicatorView.frame.size.width + 8 + titleLabel.frame.size.width) / 2), ((activityIndicatorView.frame.size.height) / 2), (activityIndicatorView.frame.size.width + 8 + titleLabel.frame.size.width), (activityIndicatorView.frame.size.height)))
titleView.addSubview(activityIndicatorView)
titleView.addSubview(titleLabel)
self.navigationItem.titleView = titleView
}
func hideActivityIndicator() {
self.navigationItem.titleView = nil
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4928 次 |
| 最近记录: |