回答:
UIImageViewへのIBOutletがすでにある場合は、画像を取得してレシーバー(UIImageView)でsetImageを呼び出すだけです。画像を取得する2つの例を以下に示します。1つはWebから、もう1つは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にある場合は配線する場合があります)、覚えておくことが重要です。
したがって、私のテストビューコントローラに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]];
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")!)!)
}
}
私の問題は、別のスレッドで画像を変更しようとしたことでした。私はこれが好きでした:
- (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
として追加することを忘れないでください。
また、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"];