Programing

프로그래밍 방식으로 UIImageView에 표시되는 이미지를 어떻게 변경할 수 있습니까?

crosscheck 2020. 6. 27. 11:14
반응형

프로그래밍 방식으로 UIImageView에 표시되는 이미지를 어떻게 변경할 수 있습니까?


나는이 IBOutletA를 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];

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


내 문제는 다른 스레드에서 이미지를 변경하려고 시도했다는 것입니다. 나는 이것을 좋아했다 :

- (void)changeImage {
    backgroundImage.image = [UIImage imageNamed:@"img.png"];
}

전화 :

[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];

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

Don't forget to call sizeToFit() after you change image if you then use size of UIImageView to set UIScrollView contentSize and/or compute zoom scale

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

This question already had a lot of answers. Unfortunately none worked for me. So for the sake of completenes I add what helped me:

I had multiple images with the same name - so I ordered them in sub folders. And I had the full path to the image file I wanted to show. With a full path imageNamed: (as used in all solutions above) did not work and was the wrong method.

Instead I now use imageWithContentsOfFile: like so:

self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];

Don't know, if anyone reads that far?

If so and this one helped you: please vote up. ;-)


Working with Swift 5 (XCode 10.3) it's just

yourImageView.image = UIImage(named: "nameOfTheImage")

To set image on your imageView use below line of code,

self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];                         

참고URL : https://stackoverflow.com/questions/706240/how-can-i-change-the-image-displayed-in-a-uiimageview-programmatically

반응형