gpt4 book ai didi

ios - 无法从文件创建 UIImageView

转载 作者:可可西里 更新时间:2023-11-01 06:23:49 27 4
gpt4 key购买 nike

我在项目的同一目录中有一张 .png 格式的复选标记图像,名为“checkbox.png”。我想创建一个以该图像为背景的 UIImageView,并将其设置为一组 UITableViewCells 的附属 View 。我目前有:

UIView * v = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkmark.png"]];
v.backgroundColor = [UIColor redColor];
cell.accessoryView = v;
[v autorelease];

这是行不通的。我可以制作另一个虚拟 UIView(例如。

v = [[UIView alloc] init]; 
v.backgroundColor = [UIColor redColor];

效果很好,它在我的 uitableviewcells 的右侧显示了一个小红框。我不确定为什么带有复选框的 View 不起作用。我指定文件路径的方式有问题吗?

最佳答案

imageWithContentsOfFile: 需要文件的路径。如果你只是给它一个文件名,它会在当前目录中寻找文件,但老实说,我不知道当前目录通常在 iOS 应用程序中是什么,或者即使有任何保证。

重点是,您要么需要给它文件的绝对路径,要么使用 imageNamed:,它只需要一个名称并在主包的资源中查找。

换句话说:

UIImage *image = [UIImage imageNamed:@"checkmark"];
UIView *view = [[UIImageView alloc] initWithImage:image];

imageNamed: 的另一个优点是它会缓存图像(以防您再次使用它)并且如果您的图像会自动查找 checkmark@2x 版本设备具有 Retina 显示屏。

如果你不想要这种行为,你可以直接获取路径:

NSString *imagePath = [[NSBundle mainBundle] pathForResourceNamed:@"checkmark" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

如果它是一个大图像并且您不想缓存它(因为您不会经常使用它),这通常是一个更好的选择。

关于ios - 无法从文件创建 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com