De la barra de navegación, que puedo hacer translúcido de navegación de la barra de estilo. Pero no puedo hacer en UIView así.
¿Cómo puedo hacer translúcido estilo en UIView?

OriginalEl autor SukruK | 2013-11-19

4 Comentarios

  1. 11

    Un hack sería el uso de un UIToolBar igual que el uso normal de UIView, ya que en iOS 7 que hace el efecto de desenfoque para usted, mejor que cualquier otro intento de un efecto de desenfoque personalizado UIView. (Esto sólo funcionará en iOS7, iOS 6 sólo añadir un alfa normal)

     UIToolbar *toolBar = [[UIToolBar alloc] init];
     [toolBar setFrame:kYourFrame];
     if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
          [toolBar setAlpha:0.9];
     }
     [self.view addSubview:toolBar]; 

    OriginalEl autor

  2. 13

    Solución rápida, compatible con el Interface Builder

    Crear un archivo llamado BlurView.swift en su proyecto de xCode :

    import UIKit
    @IBDesignable class BlurView : UIView {
        //Use the following property to set the tintColor. Set it to nil to reset.
        @IBInspectable var 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 top
            self.clipsToBounds = true
    
            let toolbar = UIToolbar(frame: self.bounds)
            toolbar.translatesAutoresizingMaskIntoConstraints = false
            self.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
        }()
    }

    A continuación, puede utilizar mediante programación o directamente en IB.

    Mediante programación

    Crear y utilizar un BlurView de la misma manera que el uso de cualquier 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

    Con Interface Builder

    Agregar un UIView y fijar su vista personalizada para BlurView :

    Cómo hacer transparente a UIView en iOS7

    A continuación, puede ajustar el Desenfoque de Tinte de Color para activar el efecto translúcido :

    Cómo hacer transparente a UIView en iOS7

    Nota: el efecto de desenfoque sólo aparecerá en tiempo de ejecución.

    Resultado

    Cómo hacer transparente a UIView en iOS7

    Inspirado por https://github.com/JagCesar/iOS-blur

    Impresionante, gracias!
    No parece haber ninguna necesidad de la vista principal. Sólo tiene que utilizar un UIToolbar (o subclase de la UIToolbar) y asignar ClipToBounds = true. Pero gracias por esta solución, que era la clave!
    Sí, debe de ser factible con un UIToolbar subclase, no recuerdo por qué lo hice así.

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here