Answers:
如果已经有一个UIImageView的IBOutlet,那么您要做的就是获取图像并在接收器(UIImageView)上调用setImage。下面是两个捕获图像的示例。一种来自Web,另一种则添加到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]];
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"];})
sizeToFit()
如果您随后使用UIImageView的大小来设置UIScrollView contentSize和/或计算缩放比例,则在更改图像后不要忘记调用
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
这个问题已经有了很多答案。不幸的是,没有人为我工作。因此,为了完整起见,我添加了对我有帮助的内容:
我有多个具有相同名称的图像-因此我在子文件夹中订购了它们。而且我有要显示的图像文件的完整路径。具有完整路径imageNamed:
(如上述所有解决方案中所使用的)无效,并且是错误的方法。
相反,我现在这样使用imageWithContentsOfFile:
:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
不知道,如果有人读那么远?
如果是这样,这对您有帮助:请投票。;-)
要在imageView上设置图像,请使用以下代码行,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];