Me gustaría saber si es posible voltear el contenido de un UIView dentro del mismo dispositivo; es decir, no a un monitor externo, pero en el mismo dispositivo.

He buscado un poco en google, pero todo lo que puedo encontrar es a pantallas externas.

  • Definir flip para mí.
  • Como en el título, espejo.
InformationsquelleAutor Paul Peelen | 2011-12-20

2 Comentarios

  1. 48

    Puede utilizar CGAffineTransformMakeScale con valores negativos.
    Como:

    CGAffineTransformMakeScale(1.0, -1.0);

    Esto se puede aplicar en la vista por:

    //Mirror top to bottom
    view.transform = CGAffineTransformMakeScale(1.0, -1.0);

    o

    //Mirror Left to Right
    view.transform = CGAffineTransformMakeScale(-1.0, 1.0);
    • ¿qué acerca de la creación de reflejo de vídeo descomprimido y se muestra por AVSampleBufferDisplayLayer ? de izquierda a derecha? alguna idea? Gracias!!
    • Me lo imaginé 🙂 _videoLayer.transform = CATransform3DMakeScale(-1.0, 1.0, 1.0);, en caso de que alguien necesita espejo AVSampleBufferDisplayLayer
  2. 3

    CGAffineTransform es tu amigo aquí. He aquí algunos simplificado código de ejemplo tomar la forma de un Xcode Plantilla de UIViewController para agregar un UILabel una es la vista y tiene que ver reflejado. El reflejo es sólo un efecto de una escala negativa. Usted puede hacer todo tipo de cosas con CGAffineTransform métodos, que no se limita sólo a escala.

    - (void)viewDidLoad;
    {
      [super viewDidLoad];
    
      UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectZero];
      aLabel.text = @"Sample Text";
      [aLabel sizeToFit];
    
      //Add it to the center of our UIViewController's View
      CGRect labelFrame = aLabel.frame;
      labelFrame.origin.x = floorf((CGRectGetWidth(self.view.frame) - CGRectGetWidth(labelFrame)) / 2);
      labelFrame.origin.y = floorf((CGRectGetHeight(self.view.frame) - CGRectGetHeight(labelFrame)) / 2);
      aLabel.frame = labelFrame;
    
      //Mirror the UILabel left to right
      aLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0);
    
      //OR Mirror the UILabel top to bottom
      //aLabel.transform = CGAffineTransformMakeScale(1.0, -1.0);
    
      [self.view addSubview:aLabel];
      [aLabel release];
    }
    • No debería ser esto //Espejo de la UILabel de izquierda a derecha aLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0);?

Dejar respuesta

Please enter your comment!
Please enter your name here