Subclass UIView o UIViewController?

Estoy intentando refactorizar mi código de la mejor manera posible y me pregunto cuál es la architecture adecuada para la situación dada.

Lo que estoy tratando de hacer

Lo que estoy haciendo es bastante simple: tengo algunas subclasss de CALayer personalizadas que representan un elemento de interfaz de usuario interactivo. Están divididos en varias capas, ya que algunas de las partes de la interfaz de usuario son estáticas, por lo que no quería volver a dibujar esos elementos estáticos innecesariamente. En este momento, las capas se agregan como subcapas en la parte de initialization de una class CustomView que es una subclass de UIView .

Actualmente no hay CustomViewController class CustomViewController correspondiente que sea una subclass de UIViewController porque cuando estoy usando CustomView , está dentro de una UITableViewCell o una parte de un UIViewController genérico con otras vistas en él, así que sentí que otro UIViewController para cada instancia de CustomView ser networkingundante

También de importancia es que la única operación que estoy haciendo dentro de la class UIView es que estoy respondiendo a los events táctiles y enviando la información táctil a las subcapas para que la interfaz de usuario pueda actualizar su apariencia en consecuencia. No estoy anulando el método drawRect ni nada por el estilo.

La pregunta

Básicamente, estoy tratando de averiguar si debería:

Opción 1:

Deshágase de la class CustomView , cree una class CustomViewController que sea una subclass de UIViewController y simplemente agregue los objects CALayer como subcapas de la propiedad de view incorporada del CustomViewController .

o

Opcion 2:

Mi idea de que la subclass UIViewController es networkingundante es correcta, así que debería dejarla de la manera que lo tengo y tener una class CustomView con los objects CALayer dentro de ella.

Agradecería cualquier consejo sobre esto.

Creo que en términos de MVC, el código que está describiendo (opción # 2) está bien escrito y mantiene un límite de responsabilidad muy claro. No estás escribiendo ningún código que no tenga nada que ver con la capa de vista en sí misma en esta class, que es genial. Creo que en este caso no hay necesidad de una subclass UIViewController separada para administrar estas instancias porque, como usted dijo, están manejando sus propios events táctiles y capas visibles (exactamente su responsabilidad).

Si por alguna razón existe la necesidad de algo más complejo que requiera lógica relacionada con los datos u otro tipo de cálculo, definitivamente consideraría subclasificar un UIViewController o tal vez mirar el problema de una manera completamente diferente.

Dada la situación que ha presentado, creo que mantener la instancia de CALayer dentro de esta subclass UIView ('CustomView') es el path correcto.