Dibujo "networkingimensionable" personalizado en iOS

La API UIImage proporciona methods para cambiar el tamaño de una image de manera que ciertas áreas se estiren, mientras que otras permanecen inalteradas, ideal para imágenes de background para elementos de UI networkingimensionables.

Ahora estoy buscando una forma de personalizar este comportamiento para imágenes de background más complejas.

Esto es lo que - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets; hace. Las áreas transparentes permanecen inalteradas, las áreas rojas se estiran cuando se cambia el tamaño de la vista.

introduzca la descripción de la imagen aquí

Esto es lo que quiero: control de grano más fino sobre las áreas que se estiran:

introduzca la descripción de la imagen aquí

Supongo que tendría que hacerlo sobrescribiendo el método -(void)drawRect: de mi subclass UIView y luego usar Quartz para hacer el dibujo de la image.

Simplemente no puedo determinar cuál de las API del sistema tendría que usar.

¿Alguien podría darme una pista de cómo lograr esto? ¡Gracias por adelantado!

Solo usaría tres UIImageViews separadas con resizableImageWithCapInsets dentro. También podría hacerlo en drawRect usando, por ejemplo, CGPattern, pero tendría problemas de performance al escalar la vista.