【发布时间】:2013-12-02 13:39:58
【问题描述】:
我编写了一个应用程序,允许用户拍摄照片,这些照片存储在NSArray 中,然后保存在Documents directory 中。重新加载时,图片会存储在 UITableView 中 - 请注意,由于问题 1,当前仅加载了一张照片。
我有两个问题:
1 - 这仅适用于一张照片,因为我需要能够计算出已存储了多少张照片。
2 - 当我重新加载数据并放入UIImageView 时,照片的旋转不正确。横向照片是颠倒的,纵向照片是横向的。
非常感谢任何有关这些问题的帮助。
保存照片
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
for (int i=0;i<photoCount;i++)
{
UIImage *image = [photos objectAtIndex:i];
NSString *savePicturePath = [saveFolderPath stringByAppendingPathComponent:[NSString stringWithFormat:@"image_%d",i]];
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savePicturePath atomically:NO];
}
检索照片
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getPicPath = [documentsDirectory stringByAppendingPathComponent:@"image_0"];
NSData *picData = [[NSFileManager defaultManager] contentsAtPath:getPicPath];
UIImage *loadedImage = [UIImage imageWithData:picData];
[photos addObject:loadedImage];
[self.tableView reloadData];
向表格添加图片
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"photoCell"];
UIImage *currentImage = [self.photos objectAtIndex:indexPath.row];
cell.imageView.image = currentImage;
return cell;
}
【问题讨论】:
标签: ios objective-c