Ich habe ein IBOutlet
bis ein UIImageView
, aber wenn ich mir das UIImageView
Dokument ansehe, sehe ich keine Hinweise darauf, wie ich es programmgesteuert ändern kann. Muss ich daraus ein UIImage
Objekt holen UIImageView
?
quelle
Ich habe ein IBOutlet
bis ein UIImageView
, aber wenn ich mir das UIImageView
Dokument ansehe, sehe ich keine Hinweise darauf, wie ich es programmgesteuert ändern kann. Muss ich daraus ein UIImage
Objekt holen UIImageView
?
Wenn Sie bereits ein IBOutlet für eine UIImageView haben, müssen Sie nur ein Bild abrufen und setImage auf dem Empfänger (UIImageView) aufrufen. Im Folgenden finden Sie zwei Beispiele für das Aufnehmen eines Bildes. Eine aus dem Web und eine, die Sie in Xcode zu Ihrem Ressourcenordner hinzufügen.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
oder
UIImage *image = [UIImage imageNamed: @"cell.png"];
Sobald Sie ein Bild haben, können Sie UIImageView einstellen:
[imageView setImage:image];
In der obigen Zeile wird davon ausgegangen, dass imageView Ihr IBOutlet ist.
Das ist es! Wenn Sie Lust haben, können Sie das Bild zu einer UIView hinzufügen und dann Übergänge hinzufügen.
PS Speicherverwaltung nicht enthalten.
Beachten Sie, dass die NIB-Datei nicht alle IBOutlets verkabelt, bis die Ansicht zur Szene hinzugefügt wurde. Wenn Sie die Dinge manuell verkabeln (was Sie möglicherweise tun, wenn sich die Dinge in separaten NIBs befinden), ist dies wichtig zu beachten.
Wenn mein Test View Controller eine "imageView" hat, die von einer Feder verkabelt ist, funktioniert dies wahrscheinlich nicht:
Aber das wird:
quelle
Das hat bei mir funktioniert
Stellen Sie sicher, dass ImageView in der .h-Datei ordnungsgemäß deklariert und mit dem IB-Element verknüpft ist.
quelle
quelle
Denken Sie daran, die Eigenschaft in Ihrer Header-Datei ordnungsgemäß zu deklarieren und die UIImageView in Ihrer Implementierungsdatei zu synthetisieren, damit Personen, die dies möglicherweise googeln, versuchen, ihr Problem zu lösen Getter- und Setter-Methoden.
und dann in deiner .m:
Von dort aus sollten Sie in Ordnung sein, wenn Sie Folgendes verwenden, um Ihr Bild einzustellen.
quelle
Beispiel in Swift :
quelle
Befolgen Sie die Anweisungen von Jordan (die eigentlich funktionieren sollten), und legen Sie fest, dass UIImageView sichtbar ist:
und auch - vergessen Sie nicht, es an die Haupt-UIView anzuhängen:
und nach vorne zu bringen:
Die Hoffnung, all diese Schritte zu kombinieren, wird Ihnen helfen, das Rätsel zu lösen.
quelle
Mein Problem war, dass ich versucht habe, das Bild in einem anderen Thread zu ändern. Mir hat das gefallen:
Rufen Sie an mit:
quelle
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Wenn Sie das Bild
UIImageView
programmgesteuert einstellen möchten, vergessen Sie nicht, esUIImageView
als Unteransicht zur Hauptansicht hinzuzufügen .Und vergessen Sie auch nicht, ImageView Frame einzustellen .
Hier ist der Code
quelle
Vergessen Sie nicht,
sizeToFit()
nach dem Ändern des Bildes aufzurufen, wenn Sie dann die Größe von UIImageView verwenden, um UIScrollView contentSize festzulegen und / oder die Zoomskala zu berechnenquelle
quelle
quelle
Diese Frage hatte bereits viele Antworten. Leider hat keiner für mich gearbeitet. Der Vollständigkeit halber füge ich hinzu, was mir geholfen hat:
Ich hatte mehrere Bilder mit demselben Namen - also habe ich sie in Unterordnern bestellt. Und ich hatte den vollständigen Pfad zu der Bilddatei, die ich anzeigen wollte. Mit einem vollständigen Pfad
imageNamed:
(wie in allen obigen Lösungen verwendet) funktionierte nicht und war die falsche Methode.Stattdessen benutze ich jetzt
imageWithContentsOfFile:
so:Weiß nicht, ob jemand so weit liest?
Wenn ja und dieser hat dir geholfen: bitte stimme ab. ;-);
quelle
Mit Swift 5 (XCode 10.3) ist es einfach
quelle
Um das Bild in Ihrer imageView festzulegen, verwenden Sie die folgende Codezeile:
quelle