Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

widgetPrimaryVibrancyEffect and widgetSecondaryVibrancyEffect

Tags:

ios10

What's different between widgetSecondaryVibrancyEffect and widgetPrimaryVibrancyEffect?

enter image description here

like image 387
Robert Avatar asked Jul 18 '16 08:07

Robert


1 Answers

widgetPrimaryVibrancyEffect

For use with select supporting text and glyphs.

widgetSecondaryVibrancyEffect

For use with select supporting text and glyphs where further diminution is required

Here is an illustration with two UIButtons :

enter image description here

Swift 3.0 TodayViewController (Today Extension):

import UIKit
import NotificationCenter

class TodayViewController: UIViewController, NCWidgetProviding {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view from its nib.
        self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded

        setupStackView()
    }
    private func setupStackView(){
        let stackView = UIStackView(frame: CGRect.zero)
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.alignment = .fill
        stackView.axis      = .vertical
        stackView.distribution  = .fillEqually

        self.view.addSubview(stackView)

        let hConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:|[stackView]|", options: NSLayoutFormatOptions(rawValue:0), metrics: nil, views: ["stackView":stackView])
        let vConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:|[stackView]|", options: NSLayoutFormatOptions(rawValue:0), metrics: nil, views: ["stackView":stackView])

        self.view.addConstraints(hConstraints)
        self.view.addConstraints(vConstraints)


        stackView.addArrangedSubview(self.effectView(withEffect: UIVibrancyEffect.widgetPrimary(),   andButtonTitle: "widgetPrimaryVibrancyEffect"))
        stackView.addArrangedSubview(self.effectView(withEffect: UIVibrancyEffect.widgetSecondary(), andButtonTitle: "widgetSecondaryVibrancyEffect"))
    }

    private func effectView(withEffect effect : UIVisualEffect, andButtonTitle title : String)->UIVisualEffectView{
        //Create button
        let button = UIButton(type: .custom)
        button.translatesAutoresizingMaskIntoConstraints = false
        button.setTitle(title, for: .normal)

        //Create UIVisualEffectView
        let effectView = UIVisualEffectView(effect:  effect)
        effectView.frame = CGRect.zero
        effectView.translatesAutoresizingMaskIntoConstraints = false


        effectView.contentView.addSubview(button)

        //Constraints
        button.leftAnchor.constraint(equalTo: effectView.contentView.leftAnchor).isActive = true
        button.topAnchor.constraint(equalTo: effectView.contentView.topAnchor).isActive = true
        button.rightAnchor.constraint(equalTo: effectView.contentView.rightAnchor).isActive = true
        button.bottomAnchor.constraint(equalTo: effectView.contentView.bottomAnchor).isActive = true

        return effectView
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func widgetPerformUpdate(completionHandler: ((NCUpdateResult) -> Void)) {
        completionHandler(NCUpdateResult.newData)
    }

}
like image 108
CryingHippo Avatar answered Jan 02 '23 13:01

CryingHippo