Saya memiliki IBOutlet
ke a UIImageView
, tetapi ketika saya melihat UIImageView
dokumen, saya tidak dapat melihat petunjuk tentang mengubahnya secara terprogram. Apakah saya harus mengambil UIImage
objek dari itu UIImageView
?
sumber
Saya memiliki IBOutlet
ke a UIImageView
, tetapi ketika saya melihat UIImageView
dokumen, saya tidak dapat melihat petunjuk tentang mengubahnya secara terprogram. Apakah saya harus mengambil UIImage
objek dari itu UIImageView
?
Jika Anda sudah memiliki IBOutlet ke UIImageView, yang harus Anda lakukan hanyalah mengambil gambar dan memanggil setImage pada penerima (UIImageView). Dua contoh mengambil gambar ada di bawah. Satu dari Web, dan satu lagi yang Anda tambahkan ke folder Resources di Xcode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
atau
UIImage *image = [UIImage imageNamed: @"cell.png"];
Setelah Anda memiliki Image, Anda dapat mengatur UIImageView:
[imageView setImage:image];
Baris di atas mengasumsikan imageView adalah IBOutlet Anda.
Itu dia! Jika Anda ingin terlihat keren, Anda dapat menambahkan gambar ke UIView dan kemudian menambahkan transisi.
Manajemen Memori PS tidak termasuk.
Perhatikan bahwa file NIB tidak menghubungkan semua IBOutlets sampai view telah ditambahkan ke scene. Jika Anda memasang kabel secara manual (yang mungkin Anda lakukan jika ada dalam NIB terpisah), ini penting untuk diingat.
Jadi jika pengontrol tampilan pengujian saya memiliki "imageView" yang dihubungkan oleh ujung pena, ini mungkin tidak akan berfungsi:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"]; [self.view addSubview:testCardViewController.view];
Tapi ini akan:
[self.view addSubview:testCardViewController.view]; testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
sumber
Ini berhasil untuk saya
[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];
Pastikan ImageView dideklarasikan dengan benar di file .h dan ditautkan dengan elemen IB.
sumber
imageView.image = [UIImage imageNamed:@"myImage.png"];
sumber
Untuk tujuan orang-orang yang mungkin melakukan googling ini untuk mencoba menyelesaikan masalah mereka, ingatlah untuk mendeklarasikan properti dengan benar di file header Anda dan untuk mensintesis UIImageView dalam file implementasi Anda ... Akan sulit untuk menyetel gambar secara terprogram tanpa metode pengambil dan penyetel.
#import <UIKit/UIKit.h> @interface YOURCONTROLLERNAME : UIViewController { IBOutlet UIImageView *imageToDisplay; } @property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay; @end
lalu di .m Anda:
@implementation YOURCONTROLLERNAME @synthesize imageToDisplay; //etc, rest of code goes here
Dari sana Anda akan baik-baik saja menggunakan sesuatu seperti berikut ini untuk mengatur gambar Anda.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
sumber
Contoh di Swift :
import UIKit class ViewController: UIViewController { @IBOutlet var myUIImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() } @IBAction func myAction(sender: UIButton) { let newImg: UIImage? = UIImage(named: "profile-picture-name") self.myUIImageView.image = newImg } @IBAction func myAction2(sender: UIButton) { self.myUIImageView.image = nil self.myUIImageView.image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://url/image.png")!)!) } }
sumber
Mengikuti saran Jordan (yang seharusnya berfungsi dengan baik), coba setel UIImageView agar terlihat:
[imageView setHidden: NO];
dan juga - jangan lupa untuk melampirkannya ke UIView utama:
[mainView addSubview: imageView];
dan untuk dibawa ke depan:
[mainView bringSubviewToFront: imageView];
Semoga menggabungkan semua langkah ini akan membantu Anda memecahkan misteri itu.
sumber
Masalah saya adalah saya mencoba mengubah gambar di utas lain. Saya suka ini:
- (void)changeImage { backgroundImage.image = [UIImage imageNamed:@"img.png"]; }
Telepon dengan:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
sumber
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Jika Anda ingin mengatur gambar ke
UIImageView
programatik maka Jangan Lupa untuk menambahkanUIImageView
sebagai SubView ke Tampilan utama.Dan juga jangan lupa untuk mengatur ImageView Frame .
ini kodenya
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; myImage.image = [UIImage imageNamed:@"myImage.png"]; [self.view addSubview:myImage];
sumber
Jangan lupa untuk memanggil
sizeToFit()
setelah Anda mengubah gambar jika Anda kemudian menggunakan ukuran UIImageView untuk menyetel UIScrollView contentSize dan / atau menghitung skala zoomlet image = UIImage(named: "testImage") imageView.image = image imageView.sizeToFit() scrollView.contentSize = imageView.bounds.size
sumber
myUIImageview.image = UIImage (named:"myImage.png")
sumber
UIColor * background = [[UIColor alloc] initWithPatternImage: [UIImage imageNamed:@"anImage.png"]]; self.view.backgroundColor = background; [background release];
sumber
Pertanyaan ini sudah punya banyak jawaban. Sayangnya tidak ada yang berhasil untuk saya. Jadi demi melengkapi saya menambahkan apa yang membantu saya:
Saya memiliki banyak gambar dengan nama yang sama - jadi saya memesannya dalam sub folder. Dan saya memiliki jalur lengkap ke file gambar yang ingin saya tunjukkan. Dengan jalur lengkap
imageNamed:
(seperti yang digunakan dalam semua solusi di atas) tidak berfungsi dan merupakan metode yang salah.Sebagai gantinya saya sekarang menggunakan
imageWithContentsOfFile:
seperti ini:self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Tidak tahu, apakah ada yang membaca sejauh itu?
Jika demikian dan yang ini membantu Anda: harap beri suara. ;-)
sumber
Bekerja dengan Swift 5 (XCode 10.3) itu saja
yourImageView.image = UIImage(named: "nameOfTheImage")
sumber
Untuk mengatur gambar pada imageView Anda, gunakan baris kode di bawah ini,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];
sumber