5
Was zwischen widgetSecondaryVibrancyEffect und widgetPrimaryVibrancyEffect anders?widgetPrimaryVibrancyEffect und widgetSecondaryVibrancyEffect
Was zwischen widgetSecondaryVibrancyEffect und widgetPrimaryVibrancyEffect anders?widgetPrimaryVibrancyEffect und widgetSecondaryVibrancyEffect
widgetPrimaryVibrancyEffect
Für die Verwendung mit ausgewählten Begleittext und Glyphen.
widgetSecondaryVibrancyEffect
Für die Verwendung mit ausgewählten Begleittext und Glyphen, wo eine weitere Verminderung
hier erforderlich ist, ist eine Darstellung mit zwei UIButtons:
Swift 3.0 TodayViewController (Heute 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)
}
}
Können Sie ein bisschen auf erarbeiten, wie diese Effekte in Ihrem Beispiel angewendet wurden? Der Text wird weiterhin schwarz dargestellt, wenn ich versuche, die bereitgestellten Effekte zu verwenden. – macserv
Ich habe den Quellcode hinzugefügt. Grundsätzlich müssen Sie jedes Steuerelement der UIVisualEffectView hinzufügen. – CryingHippo
Danke! Dies sieht viel wie das, was ich am Ende tun ... meine erste Probleme scheinen durch die Schaffung der umschließenden Wirkung Ansicht innerhalb Interface Builder verursacht wurden. In diesem Code zu beheben, behebt dieses Problem. – macserv