use*_*063 6 cocoa-touch subview uiview ios ios11
我有一个函数,当我链接到iOS 11 SDK时,我收到一个错误:
不要将子视图直接添加到视觉效果视图本身,而是将它们添加到-contentView.
这个问题可以通过改变来解决
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))"
Run Code Online (Sandbox Code Playgroud)
至
effectView = UIView()
Run Code Online (Sandbox Code Playgroud)
但效果不是这样的.我怎样才能继续使用UIVisualEffectView
而不是UIView
?我想保持效果.
let imagePicker = UIImagePickerController()
let messageFrame = UIView()
var activityIndicator = UIActivityIndicatorView()
var strLabel = UILabel()
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
func activityIndicator(_ title: String) {
strLabel.removeFromSuperview()
activityIndicator.removeFromSuperview()
effectView.removeFromSuperview()
strLabel = UILabel(frame: CGRect(x: 50, y: 0, width: 160, height: 46))
strLabel.text = title
strLabel.font = UIFont.systemFont(ofSize: 14, weight: UIFont.Weight.medium)
strLabel.textColor = UIColor(white: 0.9, alpha: 0.7)
effectView.frame = CGRect(x: (view.frame.midX - strLabel.frame.width/2), y: (view.frame.midY - strLabel.frame.height/2), width: 160, height: 46)
effectView.layer.cornerRadius = 15
effectView.layer.masksToBounds = true
activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .white)
activityIndicator.frame = CGRect(x: 0, y: 0, width: 46, height: 46)
activityIndicator.startAnimating()
effectView.addSubview(activityIndicator)
effectView.addSubview(strLabel)
view.addSubview(effectView)
}
Run Code Online (Sandbox Code Playgroud)
只要按照错误说什么,并添加子视图UIVisualEffectView
的contentView
.
effectView.contentView.addSubview(activityIndicator)
effectView.contentView.addSubview(strLabel)
Run Code Online (Sandbox Code Playgroud)
苹果公司是这么说的;
\n\n\n\n\n根据所需的效果,该效果可能会影响视图后面分层的内容或添加到视觉效果视图\xe2\x80\x99s\n contentView 的内容。将视觉效果视图应用到现有视图,然后应用 UIBlurEffect 或 UIVibrancyEffect 对象以将模糊或鲜艳效果应用到现有视图。将视觉效果视图添加到视图层次结构后,将任何子视图添加到视觉效果视图的 contentView 属性。不要将子视图直接添加到\n视觉效果视图本身。
\n
因此,按照 @the4kman 将您的子视图添加到视觉效果视图的内容视图中
\n\n effectView.contentView.addSubview(activityIndicator)\n effectView.contentView.addSubview(strLabel)\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1900 次 |
最近记录: |