In der Navigationsleiste, kann ich translucent navigation bar-Stil. Aber ich kann nicht in UIView so.
Wie kann ich machen durchscheinend Stil in UIView?
Ein hack wäre die Verwendung einer UIToolBar wie würden Sie mit einem normalen UIView, da in iOS 7, es tut die Unschärfe für Sie, besser als alle anderen versuche, einen Unschärfe-Effekt benutzerdefinierte UIView. (Das funktioniert nur in iOS7, iOS 6, fügen Sie einfach einen normalen alpha)
Erstellen Sie eine Datei namens BlurView.swift in Ihrem xCode-Projekt :
importUIKit@IBDesignableclassBlurView:UIView{//Use the following property to set the tintColor. Set it to nil to reset.@IBInspectablevar blurTintColor:UIColor!{set{
toolbar.barTintColor = blurTintColor
}get{return toolbar.barTintColor
}}
lazy var toolbar:UIToolbar={//If we don't clip to bounds the toolbar draws a thin shadow on topself.clipsToBounds =truelet toolbar =UIToolbar(frame:self.bounds)
toolbar.translatesAutoresizingMaskIntoConstraints =falseself.insertSubview(toolbar, atIndex:0)let views =["toolbar": toolbar]self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[toolbar]|", options:[], metrics:nil, views: views))self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[toolbar]|", options:[], metrics:nil, views: views))return toolbar
}()}
Dann können Sie es verwenden, programmgesteuert oder direkt bei der IB.
Programmgesteuert
Erstellen und verwenden Sie eine BlurView die gleiche Weise, die Sie verwenden alle UIVIew.
var myView:BlurView//...//Activate the translucent effect by setting `blurTintColor`
myView.blurTintColor =UIColor.redColor()//Or any color//If you need to desactivate the effect later//myView.blurTintColor = nil
Mit Interface Builder
Fügen Sie einen UIView und festlegen der benutzerdefinierten Ansicht zu BlurView :
Dann können Sie die Unschärfe "Farbton" aktivieren, um den durchscheinenden Effekt :
Hinweis: das Weichzeichnen erscheint nur zur Laufzeit.
Es scheint keine Notwendigkeit für die übergeordnete Ansicht. Verwenden Sie einfach ein UIToolbar (oder Unterklasse UIToolbar) und weisen ClipToBounds = true zu. Aber danke für diese Lösung, es war der Schlüssel!
Ja, es sollte machbar sein mit ein UIToolbar-Unterklasse, ich kann mich nicht erinnern, warum ich es so.
Ein hack wäre die Verwendung einer UIToolBar wie würden Sie mit einem normalen UIView, da in iOS 7, es tut die Unschärfe für Sie, besser als alle anderen versuche, einen Unschärfe-Effekt benutzerdefinierte UIView. (Das funktioniert nur in iOS7, iOS 6, fügen Sie einfach einen normalen alpha)
Lösung in Swift, kompatibel mit Interface Builder
Erstellen Sie eine Datei namens BlurView.swift in Ihrem xCode-Projekt :
Dann können Sie es verwenden, programmgesteuert oder direkt bei der IB.
Programmgesteuert
Erstellen und verwenden Sie eine
BlurView
die gleiche Weise, die Sie verwenden alleUIVIew
.Mit Interface Builder
Fügen Sie einen UIView und festlegen der benutzerdefinierten Ansicht zu
BlurView
:Dann können Sie die Unschärfe "Farbton" aktivieren, um den durchscheinenden Effekt :
Hinweis: das Weichzeichnen erscheint nur zur Laufzeit.
Ergebnis
Inspiriert von https://github.com/JagCesar/iOS-blur
ClipToBounds = true
zu. Aber danke für diese Lösung, es war der Schlüssel!Können Sie eine Unschärfe Ebene von UIToolBar, um die Ansicht, die Sie wollen, dass es durchscheinend wird.
Blick auf dieses open-source-Projekt:https://github.com/JagCesar/iOS-blur
Ich nur empfehlen: https://github.com/ivoleko/ILTranslucentView
Es bietet native iOS-7+ blur (durchscheinenden) Wirkung