Saya memiliki sebuah IBOutlet
ke UIImageView
, tapi ketika saya melihat UIImageView
dok, saya bisa't melihat petunjuk apapun tentang pemrograman mengubah itu. Apakah saya harus mengambil sebuah UIImage
benda itu UIImageView
?
Jika anda memiliki IBOutlet ke UIImageView sudah, maka semua yang harus anda lakukan adalah mengambil sebuah gambar dan panggilan setImage pada penerima (UIImageView). Dua contoh dari perampasan gambar di bawah ini. Salah satu dari Web, dan salah satu yang anda tambahkan ke folder sumber Daya 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 Gambar anda kemudian dapat mengatur UIImageView:
[imageView setImage:image];
Baris di atas mengasumsikan imageView anda IBOutlet.
Yang's itu! Jika anda ingin mendapatkan mewah anda dapat menambahkan gambar ke UIView dan kemudian menambahkan transisi.
P. S. manajemen Memori tidak termasuk.
Perhatikan bahwa NIB file doesn't kawat hingga semua IBOutlets sampai melihat telah ditambahkan ke tkp. Jika anda're kabel hal-hal secara manual (yang akan kau lakukan jika hal-hal yang di pisahkan Biji) ini penting untuk menjaga dalam pikiran.
Jadi jika saya tes view controller memiliki "imageView" internet kabel dengan nib, hal ini mungkin tidak't bekerja:
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 dari orang-orang yang mungkin googling ini untuk mencoba untuk memecahkan masalah mereka, ingat untuk benar menyatakan properti di header file dan untuk mensintesis UIImageView dalam implementasi file... Itu'akan sulit untuk mengatur gambar secara terprogram tanpa getter dan setter method.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
dan kemudian pada anda .m :
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Dari sana anda harus baik-baik saja menggunakan sesuatu seperti berikut 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")!)!)
}
}
Berikut Jordan's saran (yang harus bekerja sebenarnya), cobalah untuk mengatur UIImageView akan terlihat:
[imageView setHidden: NO];
dan juga - don't lupa untuk melampirkan ke bagian utama UIView:
[mainView addSubview: imageView];
dan untuk membawa ke depan:
[mainView bringSubviewToFront: imageView];
Harapan menggabungkan semua langkah-langkah ini akan membantu anda memecahkan misteri.
Jika anda ingin mengatur gambar untuk UIImageView
pemrograman kemudian Jangan Lupa untuk menambahkan UIImageView
sebagai SubView ke Tampilan utama.
Dan juga jangan lupa untuk set ImageView Frame.
berikut ini adalah kode
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Masalah saya adalah bahwa saya mencoba untuk mengubah gambar di thread yang lain. Saya lakukan seperti ini:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Panggilan dengan:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
Don't lupa untuk panggilan sizeToFit()
setelah anda mengubah gambar jika anda kemudian gunakan ukuran UIImageView untuk mengatur UIScrollView contentSize dan/atau menghitung skala zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
Pertanyaan ini sudah memiliki banyak jawaban. Sayangnya tidak bekerja untuk saya. Jadi demi completenes saya tambahkan apa yang membantu saya:
Aku punya beberapa gambar dengan nama yang sama - sehingga saya memerintahkan mereka dalam sub folder. Dan aku punya path lengkap ke file gambar yang ingin saya tampilkan. Dengan path lengkap imageNamed:
(seperti yang digunakan dalam semua solusi di atas) tidak bekerja dan metode yang salah.
Sebagai gantinya sekarang saya menggunakan imageWithContentsOfFile:
seperti:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Don't tahu, jika ada orang yang membaca sejauh itu?
Jika demikian dan yang satu ini membantu anda: silahkan vote up. ;-)
Untuk mengatur gambar pada imageView digunakan di bawah baris kode,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];