iphone - bar - Uso de Interface Builder para UITableViews
iphone sdk (4)
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)?
Si no, ¿eso significa que todo eso es código, tendré que escribirme solo?
Desafortunadamente, 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.
Puede crear la celda con Interface Builder, pero debe convertirlo en un objeto de nivel superior, en lugar de un elemento secundario de la vista de tabla. Luego puede devolver esta celda en la tabla tableView: cellForRowAtIndexPath: function del 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 ejemplo de cómo funciona esto, la idea es que las células se vuelvan a usar), el sistema operativo solo asignará tantas celdas como encajar en la pantalla de una vez. Manera inteligente de ahorrar memoria).
Tenga cuidado con el método Boot To The Head. IBOutlets
si no IBOutlets
adecuadamente sus IBOutlets
. Trataré de explicar esto de la mejor manera posible sin publicar código (NDA). Si planea usar IB para crear su celda, haga de UITableViewCell
su propio archivo Xib. Establezca el propietario del archivo como su subclase UIViewController
(o UITableController
). Llame a IBOutlet
similar a UITableViewCell *cellFactory
. En el método tableView:cellForRowAtIndexPath:
realice el siguiente pseudocódigo;
- Intenta eliminar la cola de una celda con el identificador que configuraste en IB
- Si tiene éxito, listo. Solo usa la celda
- De lo contrario, necesitas crear una nueva celda. Utilice el
[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. - set
cell = cellFactory
luego liberacellFactory
ycellFactory
como nulo para asegurarte de no volver a utilizarlo accidentalmente. Ahora puede usar su celda de forma segura
Este es un buen tutorial sobre el uso del creador de UI para UITableView