3

我有一个在 Xcode 的界面生成器中创建的 xib。在 xib 内部是一个带有活力的 UIVisualEffectView。如果我以任何身份向 UIVisualEffectView 添加子视图(在界面构建器中或以编程方式,如您在下面的代码中所见),那么子视图是充满活力的(应该如此)但是 UIVisualEffectView 无处可见。

所以 UIVisualEffectView 的子视图是屏幕上唯一可见的元素,而 UIVisualEffectView 本身是缺失的。

在添加任何子视图之前,UIVisualEffectView 在屏幕上显示得非常好。

我怎样才能解决这个问题?

import UIKit

class EmptyContentView: UIView {

    @IBOutlet var visualEffectView: UIVisualEffectView!

    override func awakeFromNib() {
        var vibrantLabel = UILabel()
        vibrantLabel.text = "Vibrant"
        vibrantLabel.sizeToFit()
        vibrantLabel.center = self.center
        self.visualEffectView.contentView.addSubview(vibrantLabel)
    }

}

编辑:注意,我正在设备上进行测试。iPhone 6 plus 运行 iOS8。在模拟器中,我既看不到子视图也看不到 UIVisualEffectView。

这是我如何实例化笔尖的视图。

var nibViews = NSBundle.mainBundle().loadNibNamed("EmptyContentView", owner: self, options: nil)
                        let emptyContentView = nibViews[0] as! EmptyContentView
                        emptyContentView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.size.width, height: self.tableView.frame.size.height)

                        self.tableView.addSubview(emptyContentView)
                        UIView.animateWithDuration(0.2, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { self.tableView.alpha = 1 }, completion: nil)

顺便说一句,是否为 tableView 设置动画并没有什么不同。emptyContentView 的框架也是正确的。

注意:关闭活力确实可以解决问题。

4

0 回答 0