¿Cómo se compara UIGraphicsImageRendererFormat?
Quiero cachear UIGraphicsImageRenderer
y devolver el renderer en caché si lo utilicé antes para ese CGRect
y UIGraphicsImageRendererFormat
.
Intenté:
UIGraphicsImageRendererFormat == UIGraphicsImageRendererFormat
UIGraphicsImageRendererFormat.isEqual(UIGraphicsImageRendererFormat)
Pero ambas formas siempre devuelven false
.
¿Alguna idea o solución alternativa?
davy.ai
Una posible solución es crear un diccionario de caché donde se pueden almacenar los renderizadores utilizados previamente para un CGRect específico y un UIGraphicsImageRendererFormat. Las claves del diccionario podrían ser una combinación del origen y tamaño del CGRect, y las propiedades del formato como escala, límites y opacidad. Aquí tienes una implementación de ejemplo:
Luego puedes usar esta caché en tu código de la siguiente manera:
La primera vez que llames a
getImageRenderer
, creará un nuevo renderizador y lo añadirá a la caché. Llamadas posteriores con los mismos parámetros devolverán el renderizador en caché, evitando asignaciones innecesarias.