2008-09-25 23 views
9

Estoy muy temprano en el proceso de aprendizaje de desarrollo de iPhone. Intento mover mi cabeza alrededor de varias piezas. En este momento, acabo de tomar la plantilla básica de NavigationController e intento crear una vista de tabla agrupada simple con un par de campos de texto. Lo que aparentemente no puedo hacer es obtener Interface Builder para permitirme colocar una UITableViewCell en una UITableView para poder agregar un campo de texto a la Celda. ¿Esto es incluso posible (parece que se supone que se debe al hecho de que UITableViewCell es un control que se puede arrastrar)?Usando Interface Builder para UITableViews

Si no, ¿eso significa que todo eso es código, tendré que escribirme solo?

Respuesta

17

Puede crear la celda con el Creador de interfaz, pero tiene que convertirlo en un objeto de nivel superior, en lugar de un elemento secundario de la vista de tabla. A continuación, puede devolver esta celda en la función tableView: cellForRowAtIndexPath del controlador de vista:.

Asegúrese de dar a la célula un identificador en Interface Builder y luego usar el mismo identificador con dequeueReusableCellWithIdentifier: (ver el código de ejemplo de cómo funciona esto - la idea es que consiguen volver a utilizar las células - el OS solo asignará tantas celdas como quepan en la pantalla a la vez. Manera inteligente de guardar memoria.)

1

Lamentablemente, realmente no funciona de esa manera: el delegado genera las celdas en la tabla de vista en tiempo de ejecución. Sin embargo, resulta ser un código muy directo. Mira el código de ejemplo de la tabla, es bastante fácil de seguir.

6

Tenga cuidado con el método Boot To The Head. Obtendrá fugas si no se ocupa adecuadamente de su IBOutlets. Trataré de explicar esto de la mejor manera posible sin publicar código (NDA). Si planeas utilizar IB para crear tu celular, crea el UITableViewCell como su propio archivo Xib. Establezca el propietario del archivo como su subclase UIViewController (o UITableController). Llame al IBOutlet algo así como UITableViewCell *cellFactory. En el método UITableViewDataSourcetableView:cellForRowAtIndexPath:, haga el siguiente pseudocódigo;

  1. Trate de quitar de la cola de una célula utilizando el identificador que preparó en IB
  2. Si tiene éxito, su hecho. Simplemente use la celda
  3. Si no es así, debe crear una nueva celda. Use el método [NSBundle mainBundle] loadNibNamed:owner:options: con su archivo xib apropiado allí. Esto llenará el ivar de la célulaFácula con una nueva célula. Aquí viene la parte difícil.
  4. configure cell = cellFactory y luego suelte cellFactory y configúrelo en cero para asegurarse de no volver a utilizarlo accidentalmente. Ahora está seguro de usar su celular como de costumbre
Cuestiones relacionadas