Alisar líneas al usar CATransform3DRotate

Copié el código de la respuesta a ¿Cómo aplico una transformación de perspectiva a una UIView? para lograr la siguiente image. Tenga en count, sin embargo, las líneas irregulares que separan los niveles. ¿Está ahí para realizar este tipo de transformación de perspectiva de una manera que antialias estas líneas irregulares?

introduzca la descripción de la imagen aquí

Edit He probado las soluciones ofrecidas por DarkDust en los comentarios en esta publicación. Nada parece funcionar. Aquí está mi código:

levelView = [[UIControl alloc] initWithFrame:CGRectMake(100, 60, 160, 230)]; [self addSubview:levelView]; levelView.transform = CGAffineTransformScale(self.transform, .8, .8); CALayer *layer = levelView.layer; //DarkDust's 2nd comment layer.borderWidth = 1; layer.borderColor = [[UIColor clearColor] CGColor]; CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity; rotationAndPerspectiveTransform.m34 = 1.0 / 1000; rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f); layer.transform = rotationAndPerspectiveTransform; for (NSString *ID in [NSArray arrayWithObjects:@"Level 1", @"Level 2", @"Level 3", @"Level 4", @"Level 5", nil]) { //Note the offset of 5 from the superview in both X and Y directions. This addresses DarkDusk's first comment UIControl *ctrl = [[UIControl alloc] initWithFrame:CGRectMake(5, y + 5, levelView.frame.size.width, 220/5)]; [levelView addSubview:ctrl]; [ctrl addTarget:self action:@selector(languageSelected:) forControlEvents:UIControlEventTouchDown]; [self styleEnabled:ctrl]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(13, 0, ctrl.frame.size.width - 13, ctrl.frame.size.height)]; [ctrl addSubview:label]; label.text = ID; label.font = [UIFont systemFontOfSize:20]; label.textColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:.8]; label.backgroundColor = [UIColor clearColor]; y += ctrl.frame.size.height; } 

Los botones de nivel que ve en la image son todas instancias de UIControl , y son las subidas directas de UIControl *levelView . levelView es el que se está transformando.

Los otros dos de los comentarios de DarkDusk se refieren específicamente a UIImages, que no estoy usando. Si siguen siendo aplicables y alguien puede explicar cómo implementarlos, sin dudas les daré una oportunidad.

iOS 7 trae una nueva propiedad que allowsEdgeAntialiasing CALayer allowsEdgeAntialiasing a CALayer , como puede ver aquí . Cuando se establece en YES , su capa se transformará con bordes suavizados.

 /* When true this layer is allowed to antialias its edges, as requested * by the value of the edgeAntialiasingMask property. * * The default value is read from the boolean UIViewEdgeAntialiasing * property in the main bundle's Info.plist. If no value is found in * the Info.plist the default value is NO. */ @property BOOL allowsEdgeAntialiasing;