2014-07-21 5 views

답변

2

사용하여 UIWebViews의 축소판을 만들 수 있습니다

UIView *newView = [view snapshotViewAfterScreenUpdates:YES]; 

또는 당신은뿐만 아니라 사용할 수 있습니다

UIGraphicsBeginImageContextWithOptions(myView.bounds.size, NO, 0); 

[myView drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; 

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

중요! UIWebView의 축소판을 만들려면 스크린 샷을 찍은 다음 페이지를 완전히로드 한 것과 같은 문제를 찾을 수 있습니다. 따라서 페이지를로드 할 때 또는 내가해야하는 것처럼 수행 할 것을 권장합니다. 기본적으로 iOS를 호출하고이 특정 순간에 스크린 샷을 찍는 자바 스크립트 플래그를 넣으십시오. 축소판을 저장하고 원하는 메커니즘 (예 : coredata 및 정보에 빠르게 액세스 할 수있는 영구 데이터베이스 사용)을 사용하여 저장하거나 응용 프로그램 내부의 내부 폴더에 대한 경로가있는 구성 파일을 사용할 수 있습니다. 너까지. 하지만 UIWebView가 콘텐츠를로드 한 시점에 대해 염두에 두어야 할 때가 있습니다. 때로는 스크린 샷을 찍기 때문에 아무 것도 보이지 않으므로 빈 페이지가 항상 나타납니다. 대신에 스크린 샷을 찍는 대신 webView : shouldStartLoadWithRequest : navigationType : webViewDidFinishLoad에서 가져 가라. 그러나 웹 페이지가 올바르게로드되었다는 것을 명심하라. ajax 이벤트 또는 화면에서 컨텐츠를 업로드하는 외부 자바 스크립트 이벤트를 가질 수 있지만 UIWebView는 hasn 때로드되었다고 말할 수 있습니다! 그래서 자바 스크립트 플래그를 사용하여 기본적으로 스크린 샷을 찍는 내부 함수를 호출하는 이유가 있습니다.

일단 스크린 샷이 있으면 축소판 이미지가 있도록 크기를 조정해야합니다.

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 
    //UIGraphicsBeginImageContext(newSize); 
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). 
    // Pass 1.0 to force exact pixel size. 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

(The simplest way to resize an UIImage?에서 발견 용액)

을하지만 그것을 할 수있는 몇 가지 방법이있다 : 예를 들어, 당신은 사용할 수 있습니다. 내 의견으로는 카테고리를 추가하고 원하는 방식으로 기능을 조정하는 것이 가장 좋습니다.

는 당신이 답장을

+0

감사합니다 도움이되기를 바랍니다, 내가 그것을 – maple

+0

안녕 @AlfuryDB, 어쩌면 내가 분명히 내 질문에 설명하지 않은 확인합니다, 나는 그것을 공개하지 않고이 웹 페이지의 URL을 얻을합니다. – maple

+0

안녕하세요, @alfuryDB, 나는'SLComposeViewController'를 오해합니다. 사실, URL [twitter addURL : url]을 추가하면 이것이 미리보기 이미지가됩니다. – maple

관련 문제