所以问题就在这里。我已经创建了一个自定义加载器,它在中间显示一个基本的“加载”文本,背景变暗。HUD显示良好,但尽管将IsUserInteractionEnabled
设置为false
,我仍然可以单击添加了HUD的UI。代码如下:
public class Loader {
public static let shared = Loader()
private(set) var containerView = UIView()
private(set) var lblText = UILabel()
private init() {
self.containerView.frame = UIScreen.main.bounds
self.containerView.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.5)
self.containerView.isUserInteractionEnabled = false
lblText.font = UIFont.boldSystemFont(ofSize: 30)
lblText.textAlignment = .center
lblText.textColor = .white
lblText.text = "Loading..."
containerView.addSubview(lblText)
lblText.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint(item: lblText, attribute: NSLayoutConstraint.Attribute.centerX, relatedBy: NSLayoutConstraint.Relation.equal, toItem: containerView, attribute: NSLayoutConstraint.Attribute.centerX, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: lblText, attribute: NSLayoutConstraint.Attribute.centerY, relatedBy: NSLayoutConstraint.Relation.equal, toItem: containerView, attribute: NSLayoutConstraint.Attribute.centerY, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: lblText, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 275).isActive = true
lblText.heightAnchor.constraint(equalTo: lblText.widthAnchor, multiplier: 181/375).isActive = true
}
public func show() {
DispatchQueue.main.async( execute: {
if let found = UIApplication.key?.subviews.contains(where: {$0 == self.containerView}), found {
self.containerView.superview?.bringSubviewToFront(self.containerView)
}
else {
UIApplication.key?.addSubview(self.containerView)
}
})
}
@objc public func hide() {
DispatchQueue.main.async( execute: {
self.containerView.removeFromSuperview()
})
}
}
extension UIApplication {
static var key: UIWindow? {
if #available(iOS 13, *) {
return UIApplication.shared.connectedScenes
.filter({$0.activationState == .foregroundActive})
.map({$0 as? UIWindowScene})
.compactMap({$0})
.first?.windows
.filter({$0.isKeyWindow}).first
} else {
// do lower version specific window setup
return UIApplication.shared.keyWindow
}
}
}
用法:Loader.Shared.Show()
和Loader.Shared.Hide()
代码出了什么问题?
Maybe when you show the loader you can change the main view isUserInteractionEnabled to false and after you will finish the loading process change it again to true?
DispatchQueue.main.async {
Loader.shared.show()
self.isUserInteractionEnabled = false
}
问题内容: 根据官方的es文档,禁用交换是Elasticsearch可获得的最佳性能提升之一。 但是,事实证明配置起来很困难。我花了很多时间研究并尝试使用不同的方法来使用Kubernetes上的官方ES docker镜像禁用交换。 设置为环境变量时,映像无法启动,并显示错误:。正如文档所指出的那样,这是意料之中的。我什至用设置挂载了一个自定义,但是失败了。 在k8s上使用官方es映像时,建议的禁用
问题内容: 单击后,我编写了以下代码以禁用网站上的提交按钮: 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:) 问题答案: 做到: 发生的事情是您实际上在完全触发该提交事件之前禁用了该按钮。 您可能还应该考虑使用ID或CLASS来命名元素,因此不要在页面上选择所有提交类型的输入。 (请注意,我使用,因此该表单在示例中并未实际提交;请在使用时将其保留。)
问题内容: 我不希望新用户能够注册。因此,在Jenkin的配置中,我使用Jenkin自己的用户数据库禁用了“允许用户注册”。 但是,现在如何手动添加用户?另外,是否有我应该照顾的默认管理员用户? 问题答案: 在“管理詹金斯”中有“创建用户”。
有没有办法添加Firebase 3存储安全规则来限制单个认证用户可以上传多少个文件?例如每个用户100个文件。 或者更新Firebase数据库文件数,一旦有人将文件上传到存储器,然后验证文件数。 试图解决问题,如何处理用户上传无限量数据到存储器的能力。
我使用的是Go Daddy颁发的SSL证书。在我的Linux实例上,以下是软件细节:- Apache版本-Apache/2.4.16(亚马逊) OpenSSL版本-OpenSSL 1.0.1k-FIPS 8 2015年1月8日 mod_ssl版本-mod_ssl-2.4.2 注意:-我从RPM包安装Apache,以后我从RPM包安装mod_ssl和openssl。 1)问题是当我禁用SSLv3并从
我真的很感激你能提供的任何帮助!