2016-03-02 77 views
1

正在自定義UIVIew中填充pdf。現在我想啓用從屏幕上選擇文本。如果它是一個Web視圖,單擊會自動給我一個選擇範圍和編輯菜單(本機iOS行爲)。如何以編程方式做到這一點?在此先感謝..如何從iOS中的UIVIew中選擇文本的範圍?

+0

您能否提供更多信息?你如何呈現文字?如果沒有適當的信息,它幾乎是不可能的。 – tna0y

+0

感謝您的評論..我在下面提及的Draw Rect的代碼.. –

回答

0

這是UIView子類的我的drawRect代碼。我從ViewController傳遞「_page」pdf頁面。

- (void)drawRect:(CGRect)rect { 
    // Drawing code 

    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGFloat frameWidth = self.frame.size.width; 
    CGFloat frameHeight = self.frame.size.height; 

    CGContextSaveGState(context); 
    CGContextTranslateCTM(context, 0, frameHeight); 
    CGContextScaleCTM(context, 1.0, -1.0); 

    CGRect pageRect = CGPDFPageGetBoxRect(_page, 
              kCGPDFBleedBox); 
    CGFloat pageWidth = pageRect.size.width; 
    CGFloat pageHeight = pageRect.size.height; 
    CGFloat scaleRatio = 1; 

    if (pageWidth < pageHeight) { 
     scaleRatio = frameHeight/pageHeight; 
    } else { 
     scaleRatio = frameWidth/pageWidth; 
    } 

    CGFloat xOffset = (frameWidth - pageWidth 
         * scaleRatio)/2; 
    CGFloat yOffset = (frameHeight - pageHeight 
         * scaleRatio)/2; 

    CGAffineTransform pdfTransform = 
    CGPDFPageGetDrawingTransform(
           _page, kCGPDFMediaBox, 
           CGRectMake(xOffset, yOffset, pageWidth, 
              pageHeight), 0, true); 
    CGContextConcatCTM(context, CGAffineTransformScale(
                 pdfTransform, scaleRatio, scaleRatio)); 
    CGContextDrawPDFPage(context, _page); 

    CGContextRestoreGState(context); 




} 
-1

而不是使用UIView的,你可能要考慮使用Quartz 2D的 CGPDFDocumentRef和解析爲strings of interest一個[CGPDFDictionary][2]

一旦你知道哪些PDF字典元素包含文本和它們所在的位置,你也許可以突出顯示文本與other Quartz 2D routines

另一種選擇可能是您的PDF文檔轉換爲RTF或HTML格式,其中任何一個可能會更容易分析和編輯添加的高亮顯示。

UPD:

該主題的教程可以發現here

+0

我目前使用CGPDFDocumentRef對象爲我的pdf。如何顯示?我必須使用哪個UI元素......當前場景是每個頁面都在UIVIew內部生成,並且這些都成爲scrollview的子視圖。這樣我就實現了可讀性。如果我提取該字符串,我該如何顯示?感謝您的回覆.. –

+0

我建議你張貼蘋果通過[本教程(https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html)讀取。這是一個相當大的話題,所以如果你花一些時間,你會想出一個功能強大的pdf工具,它非常靈活,最有可能滿足你的要求。 – tna0y

+0

謝謝你的鏈接@Maxim ....除此之外,如果有任何其他的簡短的教程可用的手段PLZ讓我知道..再次感謝你.. –