Ich versuche, verschiedene Größe Bilder in Imageview von UITableViewCell zu platzieren. Ich bekomme die Bilddaten asynchron, erstelle das Image, setze den Content-Modus von imageView und setze schließlich die Grenzen von imageView. Aber der Code scheint unempfindlich gegenüber Änderungen zu sein, die ich vorgenommen habe. Ich möchte, dass die Bilder in einem 75x75-Bereich zentriert sind. Ich schrieb den folgenden Code für diesen ZweckÄndern Grenzen der Imageview von UITableViewCell
UIImage* image = [UIImage imageWithData:data];
[holder.imageView setContentMode:UIViewContentModeCenter || UIViewContentModeRedraw];
[holder.imageView setImage:image];
[holder.imageView setBounds:CGRectMake(0,0,75,75)];
[holder.imageView setFrame:CGRectMake(0,0,75,75)];
[holder setNeedsLayout];
Wo Halter ist die UITableViewCell. Das Ergebnis ist immer dasselbe. Alle Bilder haben 75px Höhe und unterschiedliche Breiten. Kann mir jemand helfen, dieses Problem zu lösen?
Ich habe erkannt, dass contentMode Einstellung und begrenze Eigenschaften keine Auswirkungen in diesem Code hat. Ich habe ein NSLog nach der letzten Zeile hinzugefügt und bekam die Ergebnisse wie folgt:
NSLog(@"imageview:%@ bounds and contentMode:%@ %@",[holder imageView],[holder.imageView bounds],[holder.imageView contentMode]);
Imageview: < UIImageView: 0x39ab8a0; Rahmen = (0 0; 75 75); undurchsichtig = NEIN; userInteractionEnabled = NEIN; layer = < CALayer: 0x39a92b0 >> Grenzen und contentMode: (null) (null)
Immer noch keine Lösung
Bummer, ich dachte, ich könnte gezwungen sein, eine andere UITableViewCell-Unterklasse zu erstellen ... danke, dass du mir die Zeit genommen hast, es zu bestätigen! –
Ich muss zustimmen, dass dies eine enorme Zeitverschwendung ist, um dies wie erwartet zu funktionieren. –
Während das funktioniert, ist es immer noch ein Hack. Man würde erwarten, dass der Frame/die Grenzen aus den Einschränkungen heraus berechnet werden, die in der benutzerdefinierten UITableViewCell festgelegt sind. –