[英]How add subview to UIView in Swift 4?
如何在 Swift 4 中向 UIView 添加子視圖? 需要使用 Swift 3 和 Swift 4 (iOS 10+)
@IBOutlet weak var viewBody: UIView!
@objc var loadIndicator = UIActivityIndicatorView()
@objc let loadBody = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
@objc func activityLoad() {
DispatchQueue.main.async() {
self.loadIndicator.removeFromSuperview()
self.loadBody.removeFromSuperview()
self.loadBody.frame = CGRect(x: self.viewBody.frame.midX - 23, y: self.viewBody.frame.midY - 23, width: 46, height: 46)
self.loadBody.layer.cornerRadius = 10
self.loadBody.alpha = 1//0.7
self.loadBody.layer.masksToBounds = true
self.loadIndicator = UIActivityIndicatorView(activityIndicatorStyle: .white)
self.loadIndicator.frame = CGRect(x: 0, y: 0, width: 46, height: 46)
self.loadIndicator.startAnimating()
self.loadBody.addSubview(self.loadIndicator)
self.viewBody.addSubview(self.loadBody)
}
}
錯誤:不要將子視圖直接添加到視覺效果視圖本身,而是將它們添加到 -contentView。
如果我添加 self.viewBody.contentView.addSubview(self.loadBody)
錯誤: UIView 類型的值沒有成員 contentView。
我需要你的幫助。 非常感謝。
UIVisualEffectView 有一個 contentView 屬性,你應該向這個 contentView 添加子視圖。 所以只需將您的代碼更改為 self.loadBody.contentView.addSubview(self.loadIndicator)。 – mrfour 20 分鍾前
蘋果這么說;
根據所需的效果,效果可能會影響視圖后面分層的內容或添加到視覺效果視圖的 contentView 的內容。 將視覺效果視圖應用於現有視圖,然后應用 UIBlurEffect 或 UIVibrancyEffect 對象將模糊或鮮艷效果應用於現有視圖。 將視覺效果視圖添加到視圖層次結構后,將任何子視圖添加到視覺效果視圖的 contentView 屬性。 不要將子視圖直接添加到視覺效果視圖本身。
將您的子視圖添加到視覺效果視圖的內容視圖
self.loadBody.contentView.addSubview(self.loadIndicator)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.