Sto facendo un instagram come avere una vista da tavolole cui celle contengono un UIImageView. Quando appare la prima volta che le viste dell'immagine sono posizionate correttamente, ma dopo lo scorrimento alle celle successive l'origine Y del fotogramma della vista dell'immagine viene spostata da 0 a 15 pixel. Ho già provato a forzare il fotogramma nella posizione corretta senza successo. "s my cellForRowAtIndexPath: code.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:kMITableViewCellID];
MIPhoto *photo = [self.fetchedResultController objectAtIndexPath:indexPath];
if (!photo.imageData) {
if (self.tableView.dragging == NO && self.tableView.decelerating == NO) {
[self startDownloadImage:photo forIndexPath:indexPath];
}
cell.imageView.image = [UIImage imageNamed:@"ImageViewBackGround.png"];
} else {
cell.imageView.image = [UIImage imageWithData:photo.imageData];
}
return cell;
}
Ed ecco gli screenshot con layout di celle corretti e non corretti
Schermata di layout corretto: https://www.dropbox.com/s/t3r7w2wp6k8kot4/Photo%2008-12-13%2022%2046%2055.png
schermata di layout sbagliato: https://www.dropbox.com/s/na7cb4a8shwc6mf/Photo%2008-12-13%2022%2047%2008.png
risposte:
0 per risposta № 1Risolto il problema impostando il frame di contentView della cella a livello di codice sui valori desiderati.
EDIT: ho cercato di capire perché la visualizzazione del contenuto della cella stava cambiando il frame, e ho trovato quello che sembra essere un bug in layoutSubViews
perché il bug si verifica quando questo metodo viene chiamato dalla mia abitudine UITableViewCell
sottoclasse.