Câu trả lời:
Nếu bạn đã có IBOutlet cho UIImageView, thì tất cả những gì bạn phải làm là lấy một hình ảnh và gọi setImage trên máy thu (UIImageView). Hai ví dụ về việc lấy một hình ảnh dưới đây. Một từ Web và một bạn thêm vào thư mục Tài nguyên của mình trong Xcode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
hoặc là
UIImage *image = [UIImage imageNamed: @"cell.png"];
Khi bạn có Hình ảnh, bạn có thể đặt UIImageView:
[imageView setImage:image];
Dòng trên giả định imageView là IBOutlet của bạn.
Đó là nó! Nếu bạn muốn có được sự ưa thích, bạn có thể thêm hình ảnh vào một UIView và sau đó thêm hiệu ứng chuyển tiếp.
Quản lý bộ nhớ PS không bao gồm.
Lưu ý rằng tệp NIB không kết nối tất cả các IBOutlets cho đến khi chế độ xem được thêm vào cảnh. Nếu bạn kết nối mọi thứ bằng tay (mà bạn có thể đang làm nếu mọi thứ nằm trong các NIB riêng biệt) thì điều này rất quan trọng để ghi nhớ.
Vì vậy, nếu bộ điều khiển xem thử nghiệm của tôi có "imageView" được nối bởi ngòi, thì điều này có thể sẽ không hoạt động:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Nhưng điều này sẽ:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
Với mục đích của những người có thể giải quyết vấn đề này để cố gắng giải quyết vấn đề của họ, hãy nhớ khai báo đúng tài sản trong tệp tiêu đề của bạn và tổng hợp UIImageView trong tệp triển khai của bạn ... Sẽ rất khó để thiết lập hình ảnh theo chương trình mà không phương thức getter và setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
và sau đó trong .m của bạn:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Từ đó bạn sẽ ổn khi sử dụng một cái gì đó như sau để thiết lập hình ảnh của bạn.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Ví dụ trong 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")!)!)
}
}
Theo lời khuyên của Jordan (nên hoạt động thực sự), hãy thử đặt UIImageView hiển thị:
[imageView setHidden: NO];
và cũng - đừng quên gắn nó vào UIView chính:
[mainView addSubview: imageView];
và để đưa ra phía trước:
[mainView bringSubviewToFront: imageView];
Hy vọng kết hợp tất cả các bước này sẽ giúp bạn giải quyết bí ẩn.
Vấn đề của tôi là tôi đã cố gắng thay đổi hình ảnh trong một chủ đề khác. Tôi đã làm như thế này:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Gọi với:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Nếu bạn muốn đặt hình ảnh thành UIImageView
lập trình thì đừng quên thêm UIImageView
dưới dạng SubView vào Chế độ xem chính.
Và cũng đừng quên thiết lập ImageView Frame .
đây là mã
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Đừng quên gọi sizeToFit()
sau khi bạn thay đổi hình ảnh nếu sau đó bạn sử dụng kích thước của UIImageView để đặt UIScrollView contentSize và / hoặc tính tỷ lệ thu phóng
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];
Câu hỏi này đã có rất nhiều câu trả lời. Thật không may, không ai làm việc cho tôi. Vì vậy, để hoàn thành, tôi thêm những gì đã giúp tôi:
Tôi có nhiều hình ảnh có cùng tên - vì vậy tôi đã đặt chúng trong các thư mục phụ. Và tôi đã có đường dẫn đầy đủ đến tập tin hình ảnh mà tôi muốn hiển thị. Với một đường dẫn đầy đủ imageNamed:
(như được sử dụng trong tất cả các giải pháp ở trên) đã không hoạt động và là phương pháp sai.
Thay vào đó bây giờ tôi sử dụng imageWithContentsOfFile:
như vậy:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Không biết, nếu có ai đọc đến đó?
Nếu vậy và điều này đã giúp bạn: xin vui lòng bỏ phiếu. ;-)
Để đặt hình ảnh trên imageView của bạn, hãy sử dụng dòng mã bên dưới
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];