我对Swift很新,目前正在努力实现具有模糊和活力效果的模态。
let modalViewController = FavoritesViewController()
modalViewController.modalPresentationStyle = .OverFullScreen
self.presentViewController(modalViewController, animated: true, completion: nil)
这是我创建模态视图控制器的方法,然后执行以下viewDidLoad()
方法:
override func viewDidLoad() {
super.viewDidLoad()
// Instantiate a view from the FavoritesView.xib and add
// it to this Controller's view
let optionsView = UINib(nibName: "FavoritesView", bundle: nil).instantiateWithOwner(self, options: nil)[0] as UIView
view.addSubview(optionsView)
// Create a UIVisualEffectView with a blur effect and
// insert it to this Controller's view
let blurEffect = UIBlurEffect(style: .Dark)
let blurView = UIVisualEffectView(effect: blurEffect)
blurView.frame = self.view.bounds
blurView.autoresizingMask = .FlexibleWidth | .FlexibleHeight
blurView.setTranslatesAutoresizingMaskIntoConstraints(true)
view.insertSubview(blurView, atIndex: 0)
// Create a UIVisualEffectView with a vibrancy effect
let vibrancyView = UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: blurEffect))
vibrancyView.setTranslatesAutoresizingMaskIntoConstraints(false)
vibrancyView.contentView.addSubview(optionsView)
// This is the part I'm unsure of.
blurView.contentView.addSubview(vibrancyView)
}
使用此代码可以创建和显示模糊,但活力似乎不起作用。根据我的理解,首先optionsView
(包含标签和按钮的模态视图)被添加到Controller的视图中,然后将模糊插入其后面。
最后创建了Vibrancy View,optionsView
被添加到活力视图的contentView
(我认为这是必要的,因此活力效果可以应用于视图标签等)。然后将此Vibrancy View添加到blurView。
但是,标签和按钮仍然不会显示应用的活力效果。我是否需要对.xib
- 文件中的UI元素进行任何调整才能应用Vibrancy或是否应该自动应用Vibrancy?或者我错过了其他什么?
答案 0 :(得分:0)
您好,只需在viewWillAppear
viewDidLoad
不适合屏幕上的元素(UIView
等等)。