У меня есть IBOutlet
на UIImageView
, но когда я смотрю документацию по UIImageView
, я не вижу никаких подсказок о том, как программно изменить его. Должен ли я получить объект UIImage
из этого UIImageView
?
Если у вас уже есть IBOutlet на UIImageView, то все, что вам нужно сделать, это захватить изображение и вызвать setImage на приемнике (UIImageView). Ниже приведены два примера захвата изображения. Один из них взят из Web, а другой добавлен в папку Resources в 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 и затем добавить переходы.
P.S. Управление памятью не предусмотрено.
Обратите внимание, что файл НИБ не'т провода все IBOutlets до просмотра был добавлен на сцену. Если вы'вновь жгут вещи вручную (что можно будет делать, если все находятся в отдельных Крупка) это важно, чтобы держать в уме.
Так что если мой контроллер вид теста имеет собой "книги" по общению в перо, это, вероятно, выиграл't работа:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Но это будет:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
Это помогло мне
[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];
Убедитесь, что ImageView правильно объявлен в файле .h и связан с элементом IB.
imageView.image = [UIImage imageNamed:@"myImage.png"];
Для людей, которые могут погуглить это, чтобы попытаться решить свои проблемы, не забудьте правильно объявить свойство в файле header и синтезировать помощью UIImageView в реализации вашего файла... это'll быть жестким, чтобы установить картинку программно, без геттер и сеттер методы.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
и тогда в вашей .м :
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Оттуда вы должны быть в порядке, используя что-то вроде следующего, чтобы установить ваши изображения.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Пример в Стриж:
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")!)!)
}
}
Следуя совету Jordan'а (который, собственно, и должен работать), попробуйте установить UIImageView видимым:
[imageView setHidden: NO];
а также не забудьте прикрепить его к основному UIView:
[mainView addSubview: imageView];
и вывести на передний план:
[mainView bringSubviewToFront: imageView];
Надеюсь, что объединение всех этих действий поможет вам разгадать загадку.
Если вы хотите установить изображение для помощью UIImageView
программно, то не забудьте добавить `помощью UIImageView в качестве панель на главном экране.
А также не забыл поставить графическое представление фрейма.
вот код
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Моя проблема была в том, что я пытался изменить изображение в другой поток. Я сделал так:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Звонок с:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
Дон'т забудьте позвонить 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")
Этот вопрос уже было много ответов. К сожалению, никто не работал для меня. Так ради completenes добавлю, что помогло мне:
У меня было несколько снимков с тем же именем - поэтому я заказал их в подпапки. И я имел полный путь к файлу изображения я хотел показать. Полный путь в <код>В imageNamed:</код> (в все решения выше) не работал и был неправильный метод.
Вместо этого я теперь использую в <код>imageWithContentsOfFile:</код> вот так:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Дон'т знать, если кто-нибудь читает, что далеко?
Если это так и это помогло вам: пожалуйста, проголосуйте за. ;-)
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
Чтобы установить картинку на использовании просмотрщик фото ниже строке кода
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];