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
?
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
?
Jawaban:
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"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
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]];
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")!)!)
}
}
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.
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];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Jika Anda ingin mengatur gambar ke UIImageView
programatik maka Jangan Lupa untuk menambahkan UIImageView
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];
Jangan lupa untuk memanggil sizeToFit()
setelah Anda mengubah gambar jika Anda kemudian menggunakan ukuran UIImageView untuk menyetel UIScrollView contentSize dan / atau menghitung skala zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
myUIImageview.image = UIImage (named:"myImage.png")
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
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. ;-)
Untuk mengatur gambar pada imageView Anda, gunakan baris kode di bawah ini,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];