ios uibutton core-graphics cgcontext

ios - Cómo dibujar un UIButton en forma de triángulo



core-graphics cgcontext (2)

Haz un botón cuadrado, pon una imagen de triángulo en él. ¿No va a funcionar eso también? Para hacer que la ilusión sea aún mejor, dibuja imágenes separadas para el evento onclick () y ontouch (). Deshabilite el botón predeterminado, presione y haga clic en las animaciones para que se vea real.

Realmente cavo el botón de esquina inferior derecha IFTTT, como se muestra en la imagen (abajo a la derecha).

Intenté jugar con CGContext y UIBezierPath para que coincida con el efecto, pero simplemente no sé lo suficiente para hacerlo bien. ¿Alguien tiene algún pensamiento / código sobre cómo hacer que esto suceda?

¡Gracias!


Primero use un CAShapeLayer para crear una máscara

CAShapeLayer * shapeLayer = [CAShapeLayer layer]; //Use these to create path CGMutablePathRef path = CGPathCreateMutable(); // CGPathMoveToPoint // CGPathAddLines shapeLayer.path = path;

Luego configura la máscara de tu botón

yourbutton.layer.mask = shapeLayer yourbutton.masksToBounds = YES;

Ejemplo de una vista

CAShapeLayer * shapeLayer = [CAShapeLayer layer]; CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, nil, 0, CGRectGetHeight(self.testview.frame)); CGPathAddLineToPoint(path, nil, CGRectGetWidth(self.testview.frame), 0); CGPathAddLineToPoint(path, nil, CGRectGetWidth(self.testview.frame), CGRectGetHeight(self.testview.frame)); CGPathCloseSubpath(path); shapeLayer.path = path; self.testview.layer.masksToBounds = YES; self.testview.layer.mask = shapeLayer;

Y captura de pantalla: