簡體   English   中英

如何在 Swift 4 中向 UIView 添加子視圖?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM