iOS 11 PDFKit 不更新注释位置

2024-01-03

我正在构建一个在 iPad 上编辑 PDF 的应用程序。

我正在尝试使用添加到 PDFView 超级视图的 panGesture 识别器来实现注释的拖动。问题是注释的新矩形边界已分配,但更改并未反映在屏幕上。

这是我的代码:

@objc func handlePanGesture(panGesture: UIPanGestureRecognizer) {
    let touchLocation = panGesture.location(in: pdfView)

    guard let page = pdfView.page(for: touchLocation, nearest: true) else {
        return
    }
    let locationOnPage = pdfView.convert(touchLocation, to: page)

    switch panGesture.state {
    case .began:

           guard let annotation = page.annotation(at: locationOnPage) else {
                return
            }
            currentlySelectedAnnotation = annotation
    case .changed:

        guard let annotation = currentlySelectedAnnotation else {
            return
        }
        let initialBounds = annotation.bounds
        annotation.bounds = CGRect(origin: locationOnPage,
                                   size: initialBounds.size)

        print("move to \(locationOnPage)")
    case .ended, .cancelled, .failed:
        break
    default:
        break
    }
}

希望你能帮我。


好吧,既然没人回复。我认为框架中有一个错误,所以经过一段时间的尝试和错误后,我将发布对我有用的内容。

let initialBounds = annotation.bounds
annotation.bounds = CGRect(
        origin: locationOnPage,
        size: initialBounds.size)
page.removeAnnotation(annotation)
page.addAnnotation(annotation)

它并不优雅,但它可以完成工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 11 PDFKit 不更新注释位置 的相关文章

  • XCode 9:无法将类型“[String:Any]”的值转换为预期参数类型“[NSAttributedStringKey:Any]”?

    我有一个 UIOutlineLabel 的自定义类 它在标签内的文本周围绘制轮廓 自从更新到 Swift 4 以来 我收到以下错误 无法将类型 String Any 的值转换为预期参数类型 NSAttributedStringKey Any
  • 添加 NSCoding 作为扩展

    我想扩展一个框架类 我不想直接编辑源代码 并使其符合NSCoding 基本上 这是我所处情况的简化 Can t be edited class Car NSObject var color String Can be edited exte
  • 更改 macOS 应用程序中打开窗口中的文档

    我正在为 macOS 编写一个基于文档的应用程序 我正在尝试编写一项功能来更改当前窗口中的活动文档 以便能够循环浏览文件夹中的下一个 上一个文档 就像使用图像浏览器应用程序一样 我应该调用什么命令来在当前窗口中打开不同的文档 文档表明 op
  • 图表的集合视图呈现:图表 cocoapods 的“没有可用的图表数据”

    我正在编码GraphViewController包含图形数组的类 类型为LineChartView 但是 当我尝试以集合视图的单元格格式显示这些图形时 使用调用的类GraphCell the LineChartView对象似乎没有加载任何数
  • 等高的 SwiftUI HStack

    我想要Text 111 具有相同的高度VStack包含 2222 和 333 struct Test7 View var body some View HStack alignment top Text 111 Shall have equ
  • GM 发布 Xcode 6 编译

    我刚刚下载了 Xcode 6 的 GM 版本 但无法编译并出现以下错误 Command Applications Xcode app Contents Developer Toolchains XcodeDefault xctoolchai
  • 从 UTC 转换为本地时区给出错误结果

    背景我需要将格式为 HH mm 的时间字符串从 UTC 转换为本地时区 例如 如果 UTC 时间为 09 00 则当地时间 斯德哥尔摩 欧洲 应提前两个小时 Problem当我将 09 00 UTC 转换为斯德哥尔摩 欧洲时间时 我得到 1
  • 将两个字符的字符串转换为布尔数组的快速方法是什么?

    我有一个很长的字符串 有时超过 1000 个字符 我想将其转换为布尔值数组 它需要非常快速地多次执行此操作 let input String 001 let output Bool false false true 我天真的尝试是这样的 i
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • 从xcode上触摸屏的坐标获取ImageView的像素数据?

    单击视图并从视图内的图像获取正确的像素数据似乎存在问题 func handleTap gestureRecognizer UIGestureRecognizer print You tapped at gestureRecognizer l
  • Swift 3:如何访问48字节CFData中matrix_float3x3的值?

    我正在尝试访问内在矩阵answer https stackoverflow com a 48159895 9296667 通过运行下面的命令 我能够得到一个 48 字节的任意对象 https developer apple com docu
  • Swift 运行时库与 Swift 标准库

    In this 关于如何使用 CocoaPods 的教程 https www raywenderlich com 97014 use cocoapods with swift我无法理解以下段落 与 Objective C 不同 标准 Swi
  • 如何从 ContentView 外部显示 SwiftUI 警报?

    我正在构建 Swift 应用程序 并试图找出如何显示警报 我有一个单独的 swift 文件正在执行一些计算 并且在某些条件下我希望它向用户显示警报 基本上告诉他们出了问题 然而 我见过的大多数例子都要求警报在ContentView或以其他方
  • 如何制作带有 SWIFT 图像的弹出窗口

    我想知道如何制作类似于此示例的弹出窗口 原始窗口充满了按钮 选择这些按钮后将拉出我想要使用的图像 我会简单地创建一个可重用的UIView组件以及作为子视图所需的一切 例如UIImageView为了你的形象 UILabel or a UIBu
  • 有关 Swift 编译器选项的文档

    您好 我想开始在 Apple Swift 语言上运行一些微基准测试 然而 我觉得很难找到有关编译器优化的不同选项的适当文档 我读过很多关于其他人的语言微基准的问题和文章 但是如果能有一些关于该主题的可靠文档那就太好了 在最新的测试版中 使用
  • 如何在 Swift 中从 UIColor 获取 RGB 代码(INT)[重复]

    这个问题在这里已经有答案了 我想在 Swift 中获取 UIColor 的 RGB 值 let swiftColor UIColor red 1 green 165 255 blue 0 alpha 1 println RGB Value
  • AVAssetExportSession 无法导出从 iCloud 下载的视频

    我正在尝试创建从用户相册中选择的视频的缩小版本 输出的最大尺寸为 720p 因此 在检索视频时 我使用 mediumQualityFormat as the deliveryMode 如果用户设备中不存在原始视频或其中等质量版本 这会导致
  • 如何在button.addTarget操作中发送多个按钮?斯威夫特3

    如何将button和button2发送到我的pressButton2函数中 当用户触摸按钮2时 我需要更改按钮和按钮2的颜色 当我的 button2 addTarget 看起来像这样时 我收到错误 表达式列表中存在预期表达式 import
  • UIView 圆角 - Swift 2.0?

    我会尝试将一些项目更新到 Swift 2 0 我有一个视图 左上角有一个圆角 在 Swift 没有警告 没有错误 只是没有圆角 这就是它在 Swift let maskPath UIBezierPath roundedRect conten
  • 如何更改 SwiftUI 列表中分隔符的颜色?

    我在 SwiftUI 中创建了一个列表 我想更改颜色或删除分隔符 因为在 UIKit 中 我们可以轻松更改 TableView 中分隔符的颜色 下面是 SwiftUI 中列表的代码和 UI 图片 State private var user

随机推荐

  • 数组访问可以优化吗?

    也许我被我的分析器 Netbeans 误导了 但我看到了一些奇怪的行为 希望这里有人可以帮助我理解它 我正在开发一个应用程序 它大量使用相当大的哈希表 键是长整型 值是对象 内置的 java 哈希表 特别是 HashMap 的性能非常差 在
  • SonarQube 临时磁盘空间

    我发现 SonarQube 正在使用lot其临时目录中的磁盘空间 是否有某种定期运行的清理程序来清除它 opt codehaus releases sonarqube sonarqube 5 1 temp 29 7GiB tmp
  • UIViewController调用对方的delegate

    我有两个 UIViewController 每个都有它的委托 并且正在调用其中一个 一个类称为 TopicViewController 另一个类称为 MentionViewController 代码如下所示 import
  • JavaScript 中比较 null 与 undefined 的速度

    我刚刚运行了一个非常简单的 JavaScript性能测试 http jsperf com js coerce null 不要问为什么 该测试声明了一个变量 但没有为其分配任何内容 var x 然后它比较比较值变量的速度null 并undef
  • Rails 3 / Devise:不再创建密码盐?

    我已经在一个项目上工作了一段时间 该项目使用 Devise 进行用户身份验证 每当创建用户时 它都会为他们生成密码盐及其加密密码 当我进入这个项目的尾声时 我正在测试用户注册 并注意到我的新角色没有在数据库中为这些新用户创建密码盐 而我的旧
  • 如何在Java中更改HTML标签内容?

    如何更改Java中标签的HTML内容 例如 before div text div text div text div after div text div new text div text div 我尝试过 JTidy 但不支持getT
  • 将数组格式的字符串转换为javascript数组[重复]

    这个问题在这里已经有答案了 我有一个这种格式的字符串 A B C 我想将它转换为数组 A B C 我尝试使用JSON parse 但它不起作用 任何帮助 将不胜感激 const strArray A B C const parsedStri
  • 使用 LINQ 读取 Csv

    我有一个像这样的 csv 文件 A 22 23 12 B 32 4 33 C 34 3 33 我想打印每行的总和和平均值并跳过第一列 如何在 LINQ 中使用 Lambda 进行操作 var stuff from l in File Rea
  • 在AndroidTestCase中使用@Ignore

    我正在使用 AndroidTestCase 进行一些单元测试 并且想知道是否可以使用我在 junit4 中读过的忽略注释 仅使用注释就会出现错误 也许有什么特别需要注意的地方 提前感谢 马库斯 您可以使用 Suppress在测试用例类或单个
  • DECLARE_DYNAMIC 和 DECLARE_DYNCREATE 之间的区别?

    你能让我知道两者之间有什么区别吗DECLARE DYNAMIC and DECLARE DYNCREATE 我们到底可以在哪里使用它们 第一个声明类具有运行时类型信息 第二个声明可以在运行时动态创建实例 MSDN 文档对此进行了详细描述 请
  • 如何用C#实现Lua容器(虚拟文件系统)模块加载器

    听起来有点可怕不是吗 一些背景信息 我想使用 LuaInterface 将包含一些 lua 模块的 tar 存档加载到我的 C 应用程序中 最简单的方法是将这些文件提取到临时文件夹 修改 lua 模块搜索路径并像往常一样使用 require
  • Woocommerce 产品库图像显示为全尺寸图像而不是缩略图

    该网站当前的 Woocommerce 设置正常提供主产品图像和多个图库图像 主要产品图像已正确使用 以便它显示在列表中 单击后 将打开产品页面 但是 在此产品页面中 Woocommerce 上提供的图库图像在屏幕右侧以全尺寸图像的形式显示在
  • adb 无法识别 Nexus 7 平板电脑

    我的 android sdk 和我的平板电脑出现一些奇怪的行为 我正在尝试通过以下方式识别我的平板电脑 adb devices l command 每次我插入平板电脑时 计算机上都会弹出一个窗口 询问我将平板电脑识别为相机 并询问我想用什么
  • 由于无法处理“${project.artifactId}”,无法构建 docker 映像:替换中缺少 ':'

    我正在尝试使用以下命令为 Maven 项目构建 docker 映像 mvn clean install DskipTests Pdocker 我有以下内容Dockerfile FROM openjdk 8 jre ARG serviceus
  • 使用 cypher 将节点插入 Neo4j 数据库的最有效方法是什么

    我试图通过使用 py2neo python 模块 py2neo cypher execute 执行 cypher 命令 将大量节点 500 000 插入到 非嵌入式 neo4j 数据库中 最终我需要消除对 py2neo 的依赖 但我目前正在
  • while ((c = getchar()) != EOF) 不终止

    我一直在阅读 C 编程语言 并且了解了输入和输出的这一部分 I ve read other threads saying that the console doesn t recognize enter as EOF So that I s
  • 将示例 XML 代码放入 Javadoc 中

    如何将示例 XML 代码放入 Javadoc 中 XML 代码包含我不想处理的尖括号 我尝试了以下组合PRE and code但没有成功 您可以使用 codejavadoc 标签 看看这个帖子 http www rgagnon com ja
  • EclipseLink 动态 MOXy 访问枚举值

    我正在使用下面列出的 XSD 和相应的 XML 一切都运转良好动态MOXy http wiki eclipse org EclipseLink Examples MOXy Dynamic但我不知道如何访问java中的枚举类型 有什么建议么
  • Javascript:确定字符串中的所有字符是否唯一,如果不唯一,则删除重复字符

    设置一个数组a letter occurences 但努力循环遍历这个数组 以检查occurences gt 1并删除那些存在的 function charFreq s var i j var a new Array for j 0 j l
  • iOS 11 PDFKit 不更新注释位置

    我正在构建一个在 iPad 上编辑 PDF 的应用程序 我正在尝试使用添加到 PDFView 超级视图的 panGesture 识别器来实现注释的拖动 问题是注释的新矩形边界已分配 但更改并未反映在屏幕上 这是我的代码 objc func