Pregunta

tiene una idea para resolver este problema?

Esta es la forma correcto y lo incorrecto respectly:
texto alternativo ??texto alternativo ??

Este código está trabajando:

- (UITableViewCell *)[...] cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    @try {
        newsRow = ((NewsRowController *)[tableView dequeueReusableCellWithIdentifier:@"cell"]);
        if (newsRow == nil) {
            if ( [[Device GetModel] isEqualToString:@"iPad Simulator"] || 
                 [[Device GetModel] isEqualToString:@"iPad"])
                [[NSBundle mainBundle] loadNibNamed:@"NewsRow_ipad" owner:self options:nil];
            else [[NSBundle mainBundle] loadNibNamed:@"NewsRow" owner:self options:nil];

            if ([tableArray count] > 0)
                [newsRow setData:[tableArray objectAtIndex:indexPath.row]];
        }       
    }
    @catch (NSException * e) {
        NSLog(@"a!!!!!");
    }
    return newsRow;
}

... sino porque en mi dispositivo 3G es de lentamente cuando me desplazo tabla de arriba / abajo He cambiado el código de esta manera, la inserción de verificación de dispositivos en viewDidLoad y pase en cellForRowAtIndexPath:

NSArray *cRow;
@property (nonatomic, retain) NSArray *cRow;
[...]
@syntetize cRow;

- (void)viewDidLoad {
[...]
    if ( [[Device GetModel] isEqualToString:@"iPad Simulator"] 
        || 
        [[Device GetModel] isEqualToString:@"iPad"])
        cRow  = [[[NSBundle mainBundle] loadNibNamed:@"NewsRow_ipad" owner:self options:nil] retain];
        else cRow = [[[NSBundle mainBundle] loadNibNamed:@"NewsRow" owner:self options:nil] retain];
[...]
}

- (UITableViewCell *)[...] cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    @try {
        newsRow = ((NewsRowController *)[tableView dequeueReusableCellWithIdentifier:@"cell"]);
        if (newsRow == nil) {

            //
            // ADDED CODE.
            //
            newsRow = [cRow objectAtIndex:0];    
            //

            if ([tableArray count] > 0)
                [newsRow setData:[tableArray objectAtIndex:indexPath.row]];
        }       
    }
    @catch (NSException * e) {
        NSLog(@"a!!!!!");
    }
    return newsRow;
}

Ahora la tabla mostrar sólo una fila. Si me desplazo, el cambio de fila, pero muestran sólo una fila ...
texto alternativo ??
¿Cuál es el problema?

Cualquier ayuda?

gracias,
A

¿Fue útil?

Solución

En este caso, cuando se llama a dequeueReusableCellWithIdentifier: que se pondrá en cero, puesto que no hay células que pueden ser quitadas de la cola. Es necesario para cargar la punta cada vez que una célula nula vuelta de lo contrario no va a agregar cualquier célula a la mesa después de la primera.

Si llama getModel es lo que se está desacelerando eso se puede llamar en viewDidLoad y almacenarla para su uso en el futuro.

Es muy probable que su mesa no se desplaza sin problemas debido a la cantidad de puntos de vista que está dibujando en cada celda. Si su fondo será siempre un color sólido, usted debe asegurarse de que todos los puntos de vista que va a agregar a la célula u opaco. Si necesita una imagen o un fondo degradado entonces usted debe buscar en el dibujo de la célula todos en una sola vista. Apple tiene un buen ejemplo de cómo hacer esto aquí: TableViewSuite . Específicamente pago y envío del archivo TimeZoneView.

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