我一直在寻找几个小时,我找不到解决方案。我有一个imageview,我已将其声明为IBOutlet,在imageview中,我已经使用xCode 4.2的界面构建放置了一个图像。
现在我的问题是,它可以改变imageview图像的代码行吗?
旧的UIImage *image = [UIImageView imageNamed:@"image2.png"];
它不起作用,因为它说*图像是未使用的变量。它也给了我imageNamed的错误,它说选择器'imageName'没有已知的类方法
4.2中的新代码是什么?还是我做错了什么?
答案 0 :(得分:4)
myImageView.image = [UIImage imageNamed:@"image2.png"];
应该这样做。 UIImageView具有image
属性,您可以按上述方式设置该属性,也可以使用属性提供的-setImage:
方法。另外,来自the docs:
设置image属性不会更改UIImageView的大小。 调用sizeToFit调整视图的大小以匹配图像。
您的其他问题:
它不起作用,因为它说*图像是未使用的变量。
在您提供的代码中,您将图像分配给局部变量。如果你不对那个变量做一些事情,那么代码就没有意义了。而是将图像分配给图像视图的image
属性,如上所述。
它也给我错误的imageNamed它说没有已知的选择器类方法 'imageName'
这看起来像是代码中的拼写错误。 'imageName'中缺少'd'肯定是问题所在。
4.2中的新代码是什么?
据我所知,在设置图像视图图像方面没有任何改变。我想你的代码中只有一些小问题。
答案 1 :(得分:1)
你做错了什么。您正在混合UIImage
和UIImageView
个类。前者用于在存储器中表示图像数据。后者在视图中表示UIImage
个实例。
您应该将您的行更改为:
imageViewOutlet.image = [UIImage imageNamed:@"image2.png"];
请注意,我正在使用UIImage
类将图片分配给UIImageView
的{{1}}属性。
答案 2 :(得分:0)
您需要指定
[UIImage imageNamed:@"image2.png"]
到image
的ivar的IBOutlet
属性。
例如,如果您的IBOutlet已定义:
@property (nonatomic, strong) IBOutlet UIImageView *imageView;
像这样分配:
imageView.image = [UIImage imageNamed:@"image2.png"];
答案 3 :(得分:0)
您正在尝试声明一个新变量而不使用您使用IBOutlet声明的ivar
答案 4 :(得分:0)
这对我来说很好。 oldImage是UIImageView的IBOutlet。 setCellImage方法位于Custom UITableViewCell类中。
- (void)setCellImage:(UIImage*)newImage{
[self.oldImage setImage:newImage];
}