正在自定義UIVIew中填充pdf。現在我想啓用從屏幕上選擇文本。如果它是一個Web視圖,單擊會自動給我一個選擇範圍和編輯菜單(本機iOS行爲)。如何以編程方式做到這一點?在此先感謝..如何從iOS中的UIVIew中選擇文本的範圍?
回答
這是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);
}
而不是使用UIView
的,你可能要考慮使用Quartz 2D的 CGPDFDocumentRef和解析爲strings of interest一個[CGPDFDictionary][2]
。
一旦你知道哪些PDF字典元素包含文本和它們所在的位置,你也許可以突出顯示文本與other Quartz 2D routines。
另一種選擇可能是您的PDF文檔轉換爲RTF或HTML格式,其中任何一個可能會更容易分析和編輯添加的高亮顯示。
UPD:
該主題的教程可以發現here。
我目前使用CGPDFDocumentRef對象爲我的pdf。如何顯示?我必須使用哪個UI元素......當前場景是每個頁面都在UIVIew內部生成,並且這些都成爲scrollview的子視圖。這樣我就實現了可讀性。如果我提取該字符串,我該如何顯示?感謝您的回覆.. –
我建議你張貼蘋果通過[本教程(https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html)讀取。這是一個相當大的話題,所以如果你花一些時間,你會想出一個功能強大的pdf工具,它非常靈活,最有可能滿足你的要求。 – tna0y
謝謝你的鏈接@Maxim ....除此之外,如果有任何其他的簡短的教程可用的手段PLZ讓我知道..再次感謝你.. –
- 1. 如何從多行中選擇範圍
- 2. Firefox選擇文本範圍
- 3. jQuery從範圍內選擇文本
- 4. 如何以編程方式選擇CKEDITOR中的文本範圍?
- 5. 從MySQL的IP範圍中選擇CIDR
- 6. 選擇從範圍
- 7. 如何從UITextView或UITextField中獲取文本的選定範圍
- 8. 如何從GIMP腳本中縮小選擇範圍?
- 9. 如何在UISearchBar中多選擇範圍?
- 10. 在文本框中選擇多個文本範圍silverlight
- 11. ios - 如何找到UITextView中可見範圍的文本?
- 12. SQL從日期範圍中選擇
- 13. 從Pandas DataFrame中選擇日期範圍
- 14. 從一個範圍中選擇數字
- 15. 以編程方式選擇WPF RichTextBox(FlowDocument)中的文本範圍
- 16. 選擇文本字段中的日期範圍
- 17. 選擇從範圍功能
- 18. 控制從Javascript Word文檔中的選擇範圍外接
- 19. 如何選擇範圍內的值
- 20. 如何用所選範圍替換UITextView中的文本?
- 21. Chaco中的2D範圍選擇框(Enthought)
- 22. 在IE中的選擇範圍
- 23. Excel中的VBA樣式範圍選擇
- 24. 在VBA中的範圍選擇
- 25. 如何在iOS中的WebView Content中獲取突出顯示的文本範圍?
- 26. 如何從範圍中選擇一個隨機數?
- 27. 如何根據日期範圍從db中選擇記錄?
- 28. 從選擇的範圍內返回
- 29. Excel VBA從選擇的新範圍
- 30. UI的選擇如何從文本中多選擇下拉
您能否提供更多信息?你如何呈現文字?如果沒有適當的信息,它幾乎是不可能的。 – tna0y
感謝您的評論..我在下面提及的Draw Rect的代碼.. –