답변:
UIImageView에 대한 IBOutlet이 이미 있으면 이미지를 잡고 수신자 (UIImageView)에서 setImage를 호출하기 만하면됩니다. 이미지를 잡는 두 가지 예는 다음과 같습니다. 하나는 웹에서, 하나는 Xcode의 Resources 폴더에 추가합니다.
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 파일은 뷰가 장면에 추가 될 때까지 모든 IBOutlet을 연결하지 않습니다. 수동으로 작업을 수행하는 경우 (사물이 별도의 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를 합성하는 것을 잊지 마십시오. getter 및 setter 메소드.
#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]];
스위프트의 예 :
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")!)!)
}
}
내 문제는 다른 스레드에서 이미지를 변경하려고 시도했다는 것입니다. 나는 이것을 좋아했다 :
- (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
프로그래밍 방식으로 이미지를 설정 하려면 기본보기에 SubView 로 추가 UIImageView
하는 것을 잊지 마십시오 .
또한 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")
이 질문에는 이미 많은 답변이있었습니다. 불행히도 아무도 나를 위해 일하지 않았다. 그래서 completenes를 위해 나는 나를 도왔던 것을 추가했습니다.
이름이 같은 이미지가 여러 개있어서 하위 폴더에 주문했습니다. 그리고 내가 보여주고 싶은 이미지 파일의 전체 경로를 가졌습니다. 전체 경로 imageNamed:
(위의 모든 솔루션에서 사용됨)가 작동하지 않았으며 잘못된 방법이었습니다.
대신 나는 지금 imageWithContentsOfFile:
이렇게 사용 한다 :
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
모르는 사람이 있다면
그렇다면이 방법이 도움이되었습니다. 투표하십시오. ;-)
imageView에서 이미지를 설정하려면 아래 코드 줄을 사용하십시오.
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];