Ich lade eine Reihe von Bildern aus dem Internet, von verschiedenen Standorten, alle mit unbekannten und unterschiedlichen Dimensionen.Verschiedene UII Größen in benutzerdefinierten UITableViewCell
Ich habe sie alle erfolgreich faulen Laden schön und erscheint beim Download in der benutzerdefinierten UITableViewCell ich erstellt, die eine UIImageView (cellImageView
Breite 320, Höhe 100) drin hat.
Ich bin die Tabelle der Zelle einstellen und die Zeilenhöhe Ändern der Größe in etwa so:
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath
{
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image)
{
CGFloat scaleFactor = 320.0f/download.image.size.width;
CGFloat heightScaled = (scaleFactor * download.image.size.height);
return heightScaled;
}
return 100.0f;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ImageTableCell *cell = (ImageTableCell *)[tableView dequeueReusableCellWithIdentifier:[ImageTableCell reuseIdentifier]];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"ImageTableCell" owner:self options:nil];
cell = loadCell;
self.loadCell = nil;
}
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image == nil)
{
download.delegate = self;
}
cell.cellImageView.image = download.image;
return cell;
}
Problem ist ich nicht die Zellen korrekt angezeigt bekommen. Ich habe mit dem contentMode von UIImageView herumgespielt und festgestellt, dass AspectFill OK funktioniert, aber alles nach oben schiebt, was Clipping und Maskierung verursacht und einige Bilder streckt, wenn sie nicht sollten. Mit Top löst das vertikale Problem, aber das TableViewCell dann paßt nicht in das Bild (das Bild manchmal zu groß ist.
Ist die Lösung der Tabelle der Zeile, das benutzerdefinierte TableViewCell, die UIImage und UIImage, um die Größe ? und vielleicht meine eigene Skalierung Funktionalität erstellen?
In IB verwendet es die benutzerdefinierte UITableViewCell-Klasse mit einer UIView und dann einer UIImageView in der Ansicht. – daidai
Wenn Sie sich die Federn und Streben im Layoutteil von IB ansehen möchten, überprüfen Sie, ob sie eingerichtet sind, da dies zu unerwarteten Änderungen führen kann, wenn Sie die Höhe der TabelleView-Zeile später ändern. – MCannon