在layoutSubviews
我调用setImage()
并传递它时UIImage
,它从未出现在 Interface Builder 中,但它总是在我运行程序时出现。
问问题
2231 次
2 回答
15
可能您正在使用此方法加载 UIImage:
UIImage *image = [UIImage imageNamed:@"image"];
这在界面生成器中不起作用,因为 imageNamed: 方法使用主包,但 IB 以不同的方式加载资源。尝试这样的事情:
- (void)prepareForInterfaceBuilder
{
UIImage *image = [UIImage imageNamed:@"image" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
[self setImage:image forState:UIControlStateNormal];
}
于 2014-11-28T06:52:35.013 回答
5
将为像我一样遇到此问题的任何人提供快速答案。
问题是 Interface Builder 中的图像路径与您的应用程序中的路径不同。
let bundle = Bundle(for: self.classForCoder)
image = UIImage(named: "your_image.png", in: bundle, compatibleWith: self.traitCollection)!
self.setImage(image, for: .normal)
于 2017-07-04T00:00:33.310 回答