如何在 UIToolbar 中的 UIProgressView 上方添加标签?
Posted
技术标签:
【中文标题】如何在 UIToolbar 中的 UIProgressView 上方添加标签?【英文标题】:How to add label above UIProgressView in UIToolbar? 【发布时间】:2010-08-02 04:54:59 【问题描述】:我有一个 UIToolbar,我在其中成功放置了一个 UIProgressView。但是,我看到一些应用程序在 UIProgressView 上方包含一个小标签,它告诉用户程序在哪里取得进展 - 例如。下载文件。然而,这似乎不能在 UI Builder 中完成。关于在工具栏中添加标签的最佳方法有什么想法吗?以下是我感兴趣的内容:
+------------------------------------------------+
| Uploading File |
| ================-------------------- [CANCEL] |
+------------------------------------------------+
【问题讨论】:
【参考方案1】:创建一个自定义 UIView
,其中包含 UILabel
和 UIProgressView
作为子视图。然后将自定义 UIView
插入工具栏中。
【讨论】:
【参考方案2】:您实际上也可以将文本直接添加到 UIProgressView
作为子视图,例如:
UIProgressView *videoProgressView = [[UIProgressView alloc] initWithFrame:CGRectMake(40, self.view.frame.size.height/2, self.view.frame.size.width - 80, 40)];
UILabel *processing = [[UILabel alloc] initWithFrame:CGRectMake(0, -50, videoProgressView.frame.size.width, 25)];
processing.text = @"Processing Video...";
processing.textAlignment = NSTextAlignmentCenter;
[videoProgressView addSubview:processing];
[self.view addSubview:videoProgressView];
只需确保 UIProgressView
的 clipsToBounds
属性设置为 NO。
【讨论】:
【参考方案3】:这是我的项目中使用的Lyndsey Scott's answer 的 Swift 5 实现:
let view = UIApplication.topViewController()!.view!
let progressView = UIProgressView(progressViewStyle: .default)
progressView.center = view.center
progressView.trackTintColor = .gray
progressView.frame = CGRect(x: 40, y: view.frame.size.height / 2, width: view.frame.size.width - 80, height: 40)
let progressViewLabel = UILabel(frame: CGRect(x: 0, y: -50, width: progressView.frame.size.width, height: 25))
progressViewLabel.text = "Migrating database:"
progressViewLabel.textAlignment = .center
progressView.addSubview(progressViewLabel)
view.addSubview(progressView)
【讨论】:
以上是关于如何在 UIToolbar 中的 UIProgressView 上方添加标签?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)
UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题