Dans la barre de navigation, je peux faire translucides de la barre de navigation de style. Mais je ne peux pas faire dans UIView comme ça.
Comment puis-je faire translucides style dans UIView?
Un hack seraient à l'aide d'un UIToolBar comme vous le feriez utiliser une normale UIView, depuis iOS 7, il ne le flou pour vous, mieux que toute autre tentative d'un effet de flou personnalisé UIView. (Cela ne fonctionnera que dans iOS7, iOS 6, il suffit d'ajouter une normale alpha)
Solution rapide, compatible avec Interface Builder
Créer un fichier nommé BlurView.swift dans votre projet xCode :
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
}()}
Alors vous pouvez l'utiliser par programme ou directement au bureau de l'IB.
Par programme
Créer et utiliser un BlurView la même façon que vous utilisez toutes les 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
Avec Interface Builder
Ajouter une UIView et définir sa vue personnalisée pour BlurView :
Vous pouvez ensuite régler le Flou de la Teinte de Couleur pour activer l'effet translucide :
Remarque: l'effet de flou apparaît uniquement lors de l'exécution.
Génial, merci! Il semble y avoir aucun besoin de la vue parent. Il suffit d'utiliser un UIToolbar (ou sous-classe UIToolbar) et d'affecter les ClipToBounds = true. Mais merci pour cette solution, elle est la clef! Oui, il devrait être faisable avec un UIToolbar sous-classe, je ne me souviens pas pourquoi j'ai fait ça comme ça.
Un hack seraient à l'aide d'un UIToolBar comme vous le feriez utiliser une normale UIView, depuis iOS 7, il ne le flou pour vous, mieux que toute autre tentative d'un effet de flou personnalisé UIView. (Cela ne fonctionnera que dans iOS7, iOS 6, il suffit d'ajouter une normale alpha)
OriginalL'auteur Durican Radu
Solution rapide, compatible avec Interface Builder
Créer un fichier nommé BlurView.swift dans votre projet xCode :
Alors vous pouvez l'utiliser par programme ou directement au bureau de l'IB.
Par programme
Créer et utiliser un
BlurView
la même façon que vous utilisez toutes lesUIVIew
.Avec Interface Builder
Ajouter une UIView et définir sa vue personnalisée pour
BlurView
:Vous pouvez ensuite régler le Flou de la Teinte de Couleur pour activer l'effet translucide :
Remarque: l'effet de flou apparaît uniquement lors de l'exécution.
Résultat
Inspiré par https://github.com/JagCesar/iOS-blur
Il semble y avoir aucun besoin de la vue parent. Il suffit d'utiliser un UIToolbar (ou sous-classe UIToolbar) et d'affecter les
ClipToBounds = true
. Mais merci pour cette solution, elle est la clef!Oui, il devrait être faisable avec un UIToolbar sous-classe, je ne me souviens pas pourquoi j'ai fait ça comme ça.
OriginalL'auteur Axel Guilmin
Vous pouvez ajouter un effet de flou de la couche de UIToolBar à la vue que vous voulez qu'il soit translucide.
Oeil à ce projet open source:https://github.com/JagCesar/iOS-blur
OriginalL'auteur Yong Li
Je vous le recommande: https://github.com/ivoleko/ILTranslucentView
Il fournit natif iOS 7+ flou (translucide) effet
OriginalL'auteur rule