Ответы:
Если у вас уже есть IBOutlet для UIImageView, то все, что вам нужно сделать, это захватить изображение и вызвать setImage на приемнике (UIImageView). Два примера захвата изображения приведены ниже. Один из Интернета, а другой вы добавляете в папку ресурсов в XCode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
или
UIImage *image = [UIImage imageNamed: @"cell.png"];
Когда у вас есть изображение, вы можете установить UIImageView:
[imageView setImage:image];
Строка выше предполагает, что imageView - ваш IBOutlet.
Это оно! Если вы хотите получить фантазию, вы можете добавить изображение в UIView, а затем добавить переходы.
PS Управление памятью не включено.
Обратите внимание, что файл NIB не соединяет все IBOutlets, пока представление не будет добавлено к сцене. Если вы подключаете вещи вручную (что вы можете делать, если они находятся в отдельных NIB), это важно иметь в виду.
Так что, если в моем контроллере тестового вида есть «imageView», подключенный через перо, это, вероятно, не будет работать:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Но это будет:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Чтобы люди, которые могут прибегнуть к помощи, попытались решить свою проблему, не забудьте правильно объявить свойство в вашем заголовочном файле и синтезировать UIImageView в вашем файле реализации ... Будет трудно установить изображение программно без методы получения и установки.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
а потом в твоем .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Оттуда вы должны быть в порядке, используя что-то вроде следующего, чтобы установить свое изображение.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Пример в 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")!)!)
}
}
Следуя совету Джордана (который должен работать на самом деле), попробуйте сделать UIImageView видимым:
[imageView setHidden: NO];
а также - не забудьте прикрепить его к основному UIView:
[mainView addSubview: imageView];
и вывести на фронт:
[mainView bringSubviewToFront: imageView];
Надеюсь, что объединение всех этих шагов поможет вам разгадать тайну.
Моя проблема заключалась в том, что я пытался изменить изображение в другой теме. Я сделал это так:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Звоните с:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Если вы хотите, чтобы изображение было установлено UIImageView
программно, не забывайте добавлять его UIImageView
как SubView к основному View.
А также не забыл установить ImageView Frame .
вот код
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Не забудьте позвонить sizeToFit()
после изменения изображения, если вы затем используете размер UIImageView для установки UIScrollView contentSize и / или вычисления масштаба увеличения
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];
На этот вопрос уже было много ответов. К сожалению, никто не работал для меня. Итак, ради завершенности добавлю, что мне помогло:
У меня было несколько изображений с одним именем - поэтому я заказал их в подпапках. И у меня был полный путь к файлу изображения, который я хотел показать. С полным путемimageNamed:
(как используется во всех решениях выше) не работал и был неправильный метод.
Вместо этого я теперь использую imageWithContentsOfFile:
вот так:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Не знаю, если кто-нибудь читает это далеко?
Если это так, и этот помог вам: пожалуйста, проголосуйте. ;-)
Чтобы установить изображение в вашем imageView используйте строку кода ниже,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];