正在自定义 UIVIew 中填充 pdf。现在我希望能够从屏幕上选择文本。如果它是 Webview ,单次 Tap 会自动为我提供一个选择范围以及编辑菜单( native iOS 行为)。如何以编程方式做到这一点?提前致谢..
最佳答案
这是我的 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);
}
关于ios - 如何从 iOS 中的 UIVIew 选择文本范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745169/