Me gustaría crear un par de vistas personalizadas, de ordenación de la reutilizables componentes de interfaz de usuario, y prefiere no el diseño de la interfaz de usuario en código en el UIView subclase. Me gustaría utilizar un xib para que. He usado un xib por sí mismo. Y yo he usado un UIView subclase por iteself. Pero no he usado juntos. ¿Cómo se «fije» la una a la otra? Me gustaría utilizar IBOutlets para acceder a la UILabels en mi vista personalizada.

Va a este tipo de cosas de trabajo?

NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil]; 
MyCustomView *view = [xib objectAtIndex:0];
view.myLabel.text = @"fred";
InformationsquelleAutor Ron | 2010-11-01

1 Comentario

  1. 14

    Sí que es la forma en la que funciona cuando se carga xibs que no son los padres viewControllers

    De Edición 15 De Agosto De 2013:

    No siempre se puede asumir que usted va a obtener exactamente lo que usted está buscando fuera de índice 0 de la devuelve NSArray, que es lo que hace que sea bueno para el tipo de uso de la comprobación.

    NSArray *xibArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:nil options:nil];
    MyCustomView *myView = nil;
    for (id xibObject in xibArray) {
    //Loop through array, check for the object we're interested in.
        if ([xibObject isKindOfClass:[MyCustomView class]]) {
            //Use casting to cast (id) to (MyCustomView *)
            myView = (MyCustomView *)xibObject;
        }
    }
    • Me hizo llegar este funcione de la manera que yo quería. He creado el UIView subclase, agregó el IBOutlets para los dos UILabels que tengo. En el Interface Builder he cambiado el punto de vista de la clase a mi UIView subclase, y establecer la referencia tomas en mis dos etiquetas a la vista.
    • Estoy tratando de hacer la misma cosa – ¿sabes qué classname que debo utilizar para (a) padre UIControllerView y (b) la costumbre UIView aquí? Yo he observado en mi código que tengo es mi costumbre UIView nombre de la clase en ambos, pero que me da una llamada recursiva a mi costumbre UIView método init. Que es la que tengo (un) en el principal UIControllerView que utiliza mi vista personalizada, en IB es XIB yo uso un UIView que he configurado el nombre de la clase a «clockview», pero luego (b) en mi clockview personalizado UIView (no UIControllerView) archivo XIB he hecho lo mismo y establecer el nombre de la clase a ser «clockview».
    • Esto es demasiado tiempo ! cualquier otro truco ?
    • Yo no entiendo lo que quieres decir. Es menos tiempo para hacer un diseño de interfaz de usuario en el Interface Builder, que conectan algunos IBOutlets que es para configurar manualmente CGRect marcos

Dejar respuesta

Please enter your comment!
Please enter your name here