我在包含 UIImageView 的 xib 中有一个视图。我正在设置要在 xib 中显示的图像,它会正确加载和显示。
但是在某些情况下,我希望在运行时将加载的图像替换为另一个图像,所以我这样做:
NSArray* viewObjects = [[NSBundle mainBundle] loadNibNamed:@"ParentView"owner:self options:nil];
id object = [viewObjects objectAtIndex:0];
parentView *parentView = (ParentView*)[viewObjects objectAtIndex:0];
UIImage *image = [UIImage imageNamed: @"iconName"];
UIImageView *iv = [[UIImageView alloc] initWithImage: image];
iv.frame = parentView.icon.frame;
parentView.icon = iv;
parentView.icon 是一个 UIImageView。image 变量不是 nil,在代码执行时 iv 也不是。
iconName 是一个名为“iconName@2x.png”的 .png,它在我的项目中,如果我将它设置为 .xib 中的 UIImageView,那么它会正确加载并显示。但是,如果我在 .xib 中设置另一个图标并尝试在运行时用上面的代码替换它,那么它不会被替换。
我不知道为什么这不起作用。