我有一个UiVIewController,我在其中拖动了一个表视图并放置了所有需要的连接,如委托和数据源,它工作得很好,一切都很棒。我试图设置这个表视图的背景,我得到了这个奇怪的错误
CUICatalog: Invalid asset name supplied: , or invalid scale factor: 2.000000
我尝试使用此方法设置背景:
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mypredictions_bg.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
我缺少什么?我检查了图片的名称是否正确
答案 0 :(得分:3)
我创建了一个调试类,它调用了imageNamed,以便你可以获得调试跟踪。
您需要安装JRSwizzle才能使用它。
https://github.com/rentzsch/jrswizzle
#import "UIImageDebugger.h"
#import "JRSwizzle.h"
@implementation UIImageDebugger
+ (void)startDebugging
{
static dispatch_once_t once;
dispatch_once(&once, ^{
NSError *error=NULL;
[UIImage jr_swizzleClassMethod:@selector(imageNamed:)
withClassMethod:@selector(hs_xxz_imageNamed:)
error:&error];
if (error)
{
NSLog(@"error setting up UIImageDebugger : %@",error);
}
else
{
NSLog(@"!!!!!!!!!!!!!!!!!!!! UIImage swizzle in effect - take this out for release!!");
}
});
}
@end
@interface UIImage (UIViewDebugger)
+ (UIImage*)hs_xxz_imageNamed:(NSString *)name;
@end
@implementation UIImage (UIViewDebugger)
+ (UIImage*)hs_xxz_imageNamed:(NSString *)name
{
if (!name)
{
NSLog(@"null image name at \n%@",[NSThread callStackSymbols]);
}
UIImage *image=[self hs_xxz_imageNamed:name];
if (!image)
{
NSLog(@"failed to make image at \n%@",[NSThread callStackSymbols]);
}
return image;
}
@end
答案 1 :(得分:2)
在我的情况下,我为UIImageView和UITextfied制作了类别, 在那,有时候我不需要一个图像,那个时候我提供了@“”(即Null字符串),它出现问题,在一些R& DI供应只是“nil”而不是@“”之后,它解决了我的警告,所以也许这种类型的警告会在没有得到正确的图像的情况下发生。
答案 2 :(得分:0)
如果您的图片类型是png,则不必将其替换为图像文件名的末尾,因为默认的XCode图像类型已经是png。试试这个;
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"mypredictions_bg"]]];
答案 3 :(得分:0)
在我的情况下,是指向错误的viewController。 我正在指向处理基于页面的ViewController内容的viewController,而不是链接到viewController,其中pageContentViewController和PageViewController被链接在一起。希望这会有所帮助。