Está bien. Apple lo hace con frecuencia. Por ejemplo, un vistazo a NSString:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsstring_Class/Reference/NSString.html
– initWithBytes:length:encoding:
– initWithBytesNoCopy:length:encoding:freeWhenDone:
– initWithCharacters:length:
– initWithCharactersNoCopy:length:freeWhenDone:
– initWithString:
– initWithCString:encoding:
– initWithUTF8String:
– initWithFormat:
– initWithFormat:arguments:
– initWithFormat:locale:
– initWithFormat:locale:arguments:
– initWithData:encoding:
Pero, a raíz de esos patrones, la suya:
- (id)initWithFrameAndLabelArrayAndImage:(CGRect)frame:(NSArray *)labelArray:(UIImage*)image;
probablemente debería ser:
- (id)initWithFrame:(CGRect)frame labels:(NSArray *)labelArray image:(UIImage *)image;
Ahora, una vez dicho esto , Probablemente no pasaría una serie de etiquetas. Pasaría los datos y haría que la vista personalizada tomara esos datos y creara/diseñara las subvistas. Está exponiendo las vistas internas que componen su vista personalizada en los métodos públicos y es posible que desee cambiar la forma de representarlas y redactarlas en el futuro.
Otro enfoque sería utilizar delegados para representar las etiquetas que las etiquetas se representarían llamando al delegado para los datos que necesita, de forma similar a una vista de tabla.
Lo que acabaste de conclusión? – bryanmac