添加子视图后,UIVisualEffectView消失

时间:2015-12-23 15:23:53

标签: ios swift uivisualeffectview

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

因此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加运行iOS8。在模拟器中,我既看不到子视图,也看不到UIVisualEffectView。

以下是我如何实例化nib的视图。

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的框架也是正确的。

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

0 个答案:

没有答案