Pregunta

Estoy muy temprano en el proceso de aprendizaje de desarrollo de iPhone. Estoy tratando de mover mi cabeza alrededor de varias piezas. En este momento acabo de tomar la plantilla básica de NavigationController y estoy tratando de crear una vista de tabla agrupada simple con un par de campos de texto. Lo que no puedo hacer es conseguir que Interface Builder me permita colocar un UITableViewCell en un UITableView para poder agregar un campo de texto a la celda. ¿Es esto incluso posible (parece que se supone que se debe tener en cuenta que UITableViewCell es un control que se puede arrastrar)?

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

¿Fue útil?

Solución

Puede crear la celda con Interface Builder, pero debe convertirlo en un objeto de nivel superior, en lugar de ser un elemento secundario de la vista de tabla. Luego puedes devolver esta celda en la función tableView: cellForRowAtIndexPath: de tu controlador de vista.

Asegúrese de darle a la celda un identificador en Interface Builder y luego use el mismo identificador con dequeueReusableCellWithIdentifier: (vea el código de muestra para saber cómo funciona esto: la idea es que las celdas se reutilizan: el sistema operativo solo asignará tantas celdas como caben en la pantalla a la vez. Una forma inteligente de ahorrar memoria.)

Otros consejos

Ten cuidado con el método de Boot To The Head. Se producirá una fuga si no trata adecuadamente con sus IBOutlets . Intentaré explicar esto lo mejor que pueda sin publicar un código (NDA). Si planea usar IB para crear su celda, haga que UITableViewCell sea su propio archivo Xib. Establezca el propietario del archivo como su subclase UIViewController (o UITableController ). Llame al IBOutlet algo como UITableViewCell * cellFactory . En el método UITableViewDataSource tableView: cellForRowAtIndexPath: haga el siguiente pseudo-código;

  1. Intente sacar a la cola una celda con el identificador que configuró en IB
  2. Si tienes éxito, has terminado. Solo usa la celda
  3. De lo contrario, necesitas crear una nueva celda. Use el método [NSBundle mainBundle] loadNibNamed: owner: options: con su archivo xib adecuado allí. Esto llenará el ivar cellFactory con una celda nueva. Aquí viene la parte difícil.
  4. establezca cell = cellFactory luego suelte cellFactory y configúrelo en nil para asegurarse de que no lo vuelva a usar accidentalmente. Ahora puedes usar tu celular de manera segura

Desafortunadamente, realmente no funciona de esa manera: las celdas en la vista de tabla son generadas por el delegado en tiempo de ejecución. Sin embargo, resulta ser un código muy sencillo. Echa un vistazo al código de ejemplo de TableView, es bastante fácil de seguir.

Este es un buen tutorial sobre el uso del creador de IU para UITableView's

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top