我正在使用MHVideoPhotoGallery创建存储在我网站上的图片库。添加图像的当前方式(如Github上的示例所示)是
MHGalleryItem *photo1 = [MHGalleryItem.alloc initWithURL:@"*ENTER IMAGE URL HERE*"
galleryType:MHGalleryTypeImage];
MHGalleryItem *photo2 = [MHGalleryItem.alloc initWithURL:@"*ENTER IMAGE URL HERE*"
galleryType:MHGalleryTypeImage];
MHGalleryItem *photo3 = [MHGalleryItem.alloc initWithURL:@"*ENTER IMAGE URL HERE*"
galleryType:MHGalleryTypeImage];
self.galleryDataSource = @[@[photo1,photo2,photo3]];
但我想添加数百张图片,这不是最理想的方式。对我来说,实现这一目标的更简单方法是什么?
谢谢!
答案 0 :(得分:2)
您必须从网址列表开始。我要做的是把它放在我的包中的文本文件中。在代码中,当应用程序运行时,我会打开文本文件(作为NSString)并将其拆分为NSArray。现在我有了一个NSArray的URL。然后我会循环通过NSArray。所以现在我们进入一个循环。对于数组的每个项目,我将初始化MHGalleryItem,然后将其添加到先前创建的带有addObject:
的NSMutableArray。因此,我们有一个重复的两行或三行循环,遍历所有URL。
以下是伪代码和未经测试(因此它可能包含错误),但它应该给出我建议的结构的一般概念:
NSMutableArray* temp = [NSMutableArray new];
NSString* s =
[NSString stringWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"urls" ofType:@"txt"]
encoding:NSUTF8StringEncoding error:nil];
NSArray* urls = [s componentsSeparatedByString:@"\n"];
for (NSString* url in urls) {
MHGalleryItem *item = [[MHGalleryItem alloc] initWithURL:url
galleryType:MHGalleryTypeImage];
[temp addObject:item];
}
self.galleryDataSource = temp;
答案 1 :(得分:0)
循环。如果您在变量名的末尾添加数字,则需要循环和/或数组。
NSMutableArray * photos = [NSMutableArray new];
NSArray * photoPaths = [NSArray arrayWithContentsOfFile:plistContainingPhotoPaths];
for( NSString * path in photoPaths ){
NSURL * photoURL = [NSURL URLWithString:path];
MHGalleryItem * photo = [[MHGalleryItem alloc] initWithURL:photoURL
galleryType:MHGalleryTypeImage];
[photos addObject:photo];
}
并且不要使用alloc
的点语法,否则您的代码就会迸发火焰。
答案 2 :(得分:0)
在您的网站上使用命名协议,例如:
www.mywebsite.com/appImageGallery/insertImageNumber
并将insertImageNumber替换为您的图像编号。然后添加此for循环以获取所有图像并将它们添加到数组中。
NSMutableArray *mutableGalleryDataSource = [self.galleryDataSource mutableCopy]
for(int i = 0; i < numberOfImagesOnWebsite; i++){ //replace numberOfImagesOnWebsite with the number of images on your website.
MHGalleryItem *newItem = [MHGalleryItem.alloc initWithURL:[@"www.mywebsite.com/appImageGallery/" stringByAppendingString:[NSString stringWithFormat: @"%i", i]] galleryType:MHGalleryTypeImage];
[mutableGalleryDataSource addObject:newItem];
}
self.galleryDataSource = mutableGalleryDataSource;
答案 3 :(得分:0)
-addObjectsFromArray
上还有一个NSMutableArray
方法。