Tengo una aplicación como la aplicación de mapas de iOS 10 o tal vez como la pantalla de inicio con el centro de control. Por ejemplo, mire la imagen. Si abre el Centro de control, la sombra del fondo cambia a negro y transparente. ¿Cómo puedo acceder a esta capa o subvista y cambiar el color de esta sombra a otra en mi aplicación? ¿Quizás al rojo o al blanco?

enter image description here

EDITAR:

Quizás directamente con el Framework. https://github.com/iosphere/ISHPullUp

0
Paixsn 25 jul. 2016 a las 12:16

2 respuestas

La mejor respuesta

A veces abre los ojos y encontrarás lo que buscas. 😕 Si usa el mismo marco, hay una variable que puede cambiar. En la muestra del Framework puedes llegar a "BottomVC" y agregar la siguiente línea a tu viewDidLoad().

weak var pullUpController: ISHPullUpViewController!

    override func viewDidLoad() {
       super.viewDidLoad()
       let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture))
       topView.addGestureRecognizer(tapGesture)
       handleView.arrowSize = CGSize(width: 1 , height: 2)

      //This line change the default 40% black to a 70% white.
      pullUpController.dimmingColor = UIColor.white().withAlphaComponent(0.7)

}

La "Sombra" es simplemente una Vista normal. Aquí puede ver cómo el autor ha implementado esto.

0
Paixsn 25 jul. 2016 a las 10:28

Puede utilizar UIVisualEffectView de esta manera: Obj-C:

UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];//SELECT STYLE OF YOUR CHOICE
    UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
    blurEffectView.frame = self.view.bounds;//view Will be YOUR_VIEW
    blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

    [self.view addSubview:blurEffectView];//This add Blur view to your view

Rápida:

 let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = self.view.bounds
    blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.view.addSubview(blurEffectView)
0
Vishal Sonawane 25 jul. 2016 a las 09:20