プログラムで高さを設定するときに、UICollectionViewCell に問題があります。コレクションが最初に読み込まれると問題なく表示されますが、コレクションがスクロールされるとセルの高さが失われます。
これはスクロール前の外観です:
これはスクロール後のものです: https://dl.dropboxusercontent.com/u/11335239/Captura%20de%20Tela%202013-09-05%20%C3%A0s%2016.18.46.png
セルの高さを計算するには、次の方法を使用しています。
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSString *texto = ([[self.jsonMensagem objectAtIndex:indexPath.row] objectForKey:@"conteudo"] != [NSNull null]) ? [Metodos formatarTexto:[[[self.jsonMensagem objectAtIndex:indexPath.row] objectForKey:@"conteudo"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]] : @"";
float height = [texto sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14.0] constrainedToSize:CGSizeMake(220.0, 99999.0f) lineBreakMode:NSLineBreakByWordWrapping].height;
NSLog(@"\n\nText: %@\nheight: %f", texto, height);
tamanho = CGSizeMake(310.0, (height > 50) ? height + 20 : 60);
return tamanho;
}
これはそれが返すものです:
テキスト: Lorem ipsum dolor sit amet, consectetur adipiscing elit. In consequat nunc a erat faucibus, sit amet interdum ipsum auctor. Praesent sagittis feugiat aliquet. Phasellus dictum laoreet auctor. Nulla aliquet enim ut ligula sodales, sed tempor nisl interdum. ヌラムとリベロのエリート。ディグニシムでディグニシム・ファレトラ。Proin in ligula a erat vehicula mollis. 高さ: 198.000000 2013-09-06 10:34:03.971 DApp[11370:c07]
セルの作成:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
perfilMensagemEnviada *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellMensagemEnviada" forIndexPath:indexPath];
cell.textViewMensagem.text = ([mensagem objectForKey:@"conteudo"] != [NSNull null]) ? [Metodos formatarTexto:[[mensagem objectForKey:@"conteudo"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]] : @"";
cell.imageView.image = self.imagemUsuario;
return cell;
}
私は何かを忘れていますか?
私は自分の問題を解決しただけです!以下のリンク