[ios] 프로그래밍 방식으로 UIImageView에 표시되는 이미지를 변경하려면 어떻게해야합니까?

나는 IBOutlet~UIImageView 하지만, 내가 볼 때 UIImageView문서, 내가 프로그래밍 방식 변경에 대한 어떤 힌트를 볼 수 없습니다. 그 UIImage객체 를 가져와야 UIImageView합니까?



답변

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"];


답변

이것은 나를 위해 일했다

[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];

ImageView가 .h 파일에서 올바르게 선언되고 IB 요소와 연결되어 있는지 확인하십시오.


답변

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")!)!)
    }

}


답변

Jordan의 조언 (실제로 작동해야 함)에 따라 UIImageView가 표시되도록 설정하십시오.

 [imageView setHidden: NO];

또한 기본 UIView에 첨부하는 것을 잊지 마십시오.

[mainView addSubview: imageView];

그리고 정면으로 가져 :

[mainView bringSubviewToFront: imageView];

이 모든 단계를 결합하면 수수께끼를 풀 수 있습니다.