ios - 如何从 iOS 中的 UIVIew 选择文本范围?

标签 ios objective-c pdf uiview

正在自定义 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/

相关文章:

ios - 表格单元格中的 UIswitch 重复问题

iphone - Cocos-2d 操作 -- CCallFunc 不执行任何操作

objective-c - CATiledLayer : Render zoomable PDF Page - what are "LevelsOfDetail" and "LevelsOfDetailBias"?

objective-c - Objective C @autoreleasepool 指令

html - 如何在 Flutter 的 html 字符串中使用 css-property?

ios - 如何从谷歌地图的 gms 标记获取地址?

ios - Swift WHOLE_MODULE_OPTIMIZATION 改进了编译时间,但导致 lldb/Xcode 崩溃

objective-c - UIWebview加载不同文件切换语言

java - itext pdf,如何将字符串绘制到特定位置?

java - 将 ALTO XML 转换为格式化的 PDF/RTF/TXT?