Estoy leyendo una celda de tabla personalizada en tableView:cellForRowAtIndexPath:
desde un archivo de punta. Esto funciona muy bien para mis propósitos, excepto que es bastante lento.Copiando UITableViewCell
Ahora, sé que lo correcto a largo plazo es crear la celda completamente en código y usar una sola vista, y así sucesivamente. Pero este es un prototipo, y no quiero poner tanto esfuerzo en ello.
Por ahora, me alegraría si estuviera leyendo la punta una sola vez en la subclase UIViewController
, luego tableView:cellForRowAtIndexPath:
hizo copias de la misma. Mi suposición aquí es que copiar sería más rápido que leer el plumín.
Esto es lo que utilizo para cargar la punta, que llamo de viewDidLoad:
(y después de retain
)
-(id)loadFromNamed:(NSString*)name {
NSArray *objectsInNib = [[NSBundle mainBundle] loadNibNamed:name
owner:self
options:nil];
assert(objectsInNib.count == 1);
return [objectsInNib objectAtIndex:0];
}
Todo está bien hasta ahora. Pero la pregunta es: ¿cómo copio esto una y otra vez? ¿Es posible?
Probé [_cachedObject copy]
y [_cachedObject mutableCopy]
pero UITableViewCell
no es compatible con ninguno de los protocolos de copiado.
Si tengo que hacerlo, puedo decirles que ignoren la velocidad hasta que esté preparado para quitar la punta por completo, pero prefiero que funcione un poco más rápido si hay una fruta que cuelga aquí.
¿Alguna idea?
Gracias. Me había olvidado de 'dequeueReusableCellWithIdentifier'. Ahora lo estoy usando, pero aún es más lento de lo que me gustaría. Eso sugiere que el cuello de botella está en el dibujo, que tendrá que esperar hasta que tenga tiempo para aplicar los otros trucos rápidos de la mesa. ¡Pero ahora sé lo que está pasando! –
Bueno, su enfoque habría sido incluso más lento ya que la reutilización de objetos es mucho más rápida que la clonación de objetos. Me alegro de poder ayudar. –
Probar perfiles en el dispositivo para ver con certeza lo que se está ejecutando lentamente. Algunas personas dicen que el truco es usar solo una vista por celda y hacer todo tu propio dibujo. –