나는 스크린 샷을 복용하고이 코드를 파일에 쓰고 있어요 :파일에서 로딩이 작동하지 않습니다.
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
NSArray *directories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [directories objectAtIndex:0];
NSString *key = [documentsDirectory stringByAppendingPathComponent:@"screenshots.archive"];
NSMutableArray *storageArray = [NSMutableArray arrayWithContentsOfFile:key];
if(!storageArray)
storageArray = [NSMutableArray arrayWithObject:data];
else
[storageArray addObject:data];
[storageArray writeToFile:key atomically:YES];
내가 다시 이미지를로드 할 때 나는이 수행
pics = [[NSArray alloc] initWithContentsOfFile:[self dataFilePath]];
ScreenshotViewController *scv = [[ScreenshotViewController alloc]init];
[[self navigationController]pushViewController:scv animated:YES];
NSInteger row = indexPath.row;
[scv setImage:[pics objectAtIndex:row]];
dataFilePath 방법 :
- (NSString *)dataFilePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"screenshots.archive"];
}
을 문제는 ScreenshotViewController의 UIImageView가 비어 있다는 것입니다. 나는 모든 종류의 것들을 테스트했으며 이미지가 배열에 저장되거나로드되는 방식에 관한 것이지만 확실하지는 않습니다. 또한 UIImageView에 바로 넣고 뷰에 추가하여 실제 스크린 샷 부분이 작동하는지 테스트했습니다. 나는이 예외를 얻을이
[scv.myUIImageView setImage:[pics objectAtIndex:row]];
이
[scv setImage:[pics objectAtIndex:row]];
을 변경하는 경우 :
주 [__NSCFData _isResizable] : 인식 할 수없는 선택기 예를 0x847a280로 전송.
이미지를 올바르게 설정하는 방법은 무엇입니까?
와우, 지저분한 지저분하고, 읽을 수 있기를 바랍니다.
보여주는 시도 - 감사합니다! – Anders