如何通过键值观察 CALayer 的旋转?

2024-03-27

我可以这样访问该值:

NSNumber* rotationZ = [myLayer valueForKeyPath:@"transform.rotation.z"];

但由于某种原因,如果我尝试 KV 观察该关键路径,则会收到编译器错误。首先,我尝试这样做:

[myLayer addObserver:self forKeyPath:@"transform.rotation.z" options:0 context:nil];

编译器告诉我:

*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因: '[ addObserver:forKeyPath:@“rotation.z” 选项:0x0 上下文:0x528890] 已发送 到不符合 KVC 的对象 对于“旋转”属性。

我不明白的是,为什么我可以通过 KVC 键路径访问该 z 值,但不能向其添加观察者。这有道理吗?

我还能如何观察该矩阵的 z 值?我不关心矩阵的其他值。仅 Z 轴旋转。还有其他方式访问和观察它吗?


The transform财产为CALayer是一个结构体,而不是一个对象,因此它不符合 KVC。

您应该能够做的是,绑定到变换属性并在收到 KVO 通知时拉出 Z 值,而不是绑定到 Z 旋转。

我认为这里的困惑在于,当你在 NSObject 上使用点表示法时,你实际上是在使用该对象的- (id)property and - (void)setProperty方法,符合 KVC 标准。当您在结构上使用点表示法时,您正在访问该结构的成员,而不是调用方法。

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

如何通过键值观察 CALayer 的旋转? 的相关文章

  • CAShapeLayer 路径在动画后消失 - 需要它留在同一个地方

    感谢 StackOverflow 上的一些帮助 我目前正在 CAShapeLayer 中对路径进行动画处理 以制作一个从移动精灵指向屏幕上另一个移动点的三角形 动画完成后 三角形就会从屏幕上消失 我使用的持续时间非常短 因为每个精灵每 0
  • 如何在 iPhone 上使用 glib? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这几天我正在做一个项目 我的项目中包含了一个第三方库 该库是基于glib的 这真的让我抓狂 大家能告诉我我该怎么办吗 如何在 iPho
  • 为什么每次用户启动应用程序时都要注册推送通知?

    在Apple文档中你可以找到下面这句话 应用程序应在每次启动时进行注册 并向其提供者提供当前令牌 它调用 registerForRemoteNotificationTypes 来启动注册过程 因此 当我在应用程序中实现推送通知时 我必须注册
  • 在 iPhone 中使用 Soap Web 服务与 wsdl2objc?

    我确实意识到这是一个重复的问题 但是唯一的其他问题已经很老了 所以我想知道是否有人最近有过使用最新版本的经验wsdl2objc http code google com p wsdl2objc 我正在编写一个应用程序 该应用程序将与第三方应
  • 如何在 Swift 中更改 UIButton 图像

    我正在尝试使用 Swift 更改 UIButton 的图像 我应该怎么办 这是 OBJ C 代码 但我不知道 Swift 的情况 playButton setImage UIImage imageNamed play png forStat
  • 使用 NSCache 实现缓存过期

    我正在使用 NSCache 在我的应用程序中实现缓存 我想为其添加过期时间 以便在一段时间后它将获取新数据 有哪些选择以及最好的方法是什么 我应该查看访问缓存时的时间戳并使之无效吗 缓存是否应该通过使用固定间隔计时器自动使自身失效 缓存是否
  • 用于将用户发送至设备应用商店上的应用评论页面的 URL

    为了将 iTunes App Store 置于最前面并打开它以显示应用程序的评论页面 要启动的 URL 是什么 我想将我的用户发送到 撰写评论 页面 其他一些 SO 答案提供了如下 URL 但它似乎不起作用 itms apps itunes
  • 当方向改变时,视图控制器会为我做什么?

    一个简单的iphone程序 由项目模板View based Application生成 有几个按钮 我添加了以下代码 void showInfo UIView view NSLog view bounds 6 2f 6 2f 6 2f 6
  • 点击后退按钮时,iCarousel 会显示在上一页

    当我按下后退按钮时 这iCarousel仍然显示 1 秒 为什么会发生这种情况以及如何阻止这种情况 我已经使用故事板创建了 iCarosel 视图 void viewDidUnload super viewDidUnload self ca
  • 如果部署目标 < 基础 sdk,如何检查是否使用了不可用的方法?

    我想知道当部署目标低于基础 SDK 时 您如何检查代码是否不调用不可用的方法 可以在 SDK 等于部署目标的设备上运行应用程序 但我搜索一种更 自动 的方式 任何想法 问候 昆汀 最简单的方法是使用 IPHONE OS VERSION MA
  • 读取文件并获取 key=value 而不使用 java.util.Properties

    我正在构建一个 RMI 游戏 客户端将加载一个包含一些键和值的文件 这些键和值将用于多个不同的对象 它是一个保存游戏文件 但我不能为此使用 java util Properties 它符合规范 我必须读取整个文件并忽略注释行和与某些类不相关
  • 在 iPhone 5 的横向模式下启动启动画面

    我们的通用应用程序仅适用于横向模式 我们需要为 iPhone 4 和 iPhone 5 添加启动画面 对于 iPhone 5 的肖像 我们使用 email protected cdn cgi l email protection 如何为 i
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • phonegap 插件,用于从库中选择视频

    我需要能够从库中选择视频并将其上传到我的服务器 我可以录制新视频 captureVideo 并上传 文件传输 没问题 但我似乎找不到任何方法来打开视频库并选择视频然后上传 有什么办法可以做到这一点吗 以某种方式更改 MediaType na
  • 从 Xcode 更改按钮文本?

    我有一个 IBAction 连接到 Interface Builder 中的一个按钮 是否可以在运行时从我的代码中更改按钮 在 IB 中 上的文本 如果您的代码中有一个连接到某个操作的按钮 则无需实例变量即可更改标题 例如 如果按钮设置为以
  • iPhone CGContext:用两种不同颜色绘制两条线

    我在 iPhone 应用程序中使用 CGContext 时遇到一些问题 我试图用不同的颜色绘制几条线 但所有线最终总是具有最后使用的颜色 我尝试了几种方法 但并不幸运 我建立了一个小型示例项目来处理这个问题 这是我的代码 我在drawRec
  • 检测 UISwitch 的变化

    这听起来微不足道 但我注意到一些奇怪的地方 我已经为 UISwitch 的 Value Changed 事件连接了一个处理程序 我会做什么expect是每次调用处理程序时 开关的值都会改变 但实际上并非如此always案子 如果您快速按下开
  • 从 iPhone 设备查找当前国家/地区

    我必须在 iPhone 设置中获取当前国家 地区 谁能告诉我如何在 iPhone 应用程序中获取当前国家 地区 我必须使用当前国家 地区来解析需要传递当前国家 地区的 RSS 提要 请帮我找到那个国家 提前致谢 要查找用户选择的语言所在的国
  • 使用 iOS swift AVPlayer 在横向模式下不全屏

    我将视频视图设置为全屏 然而 在模拟器中玩时 它并没有全屏运行 此问题仅适用于 iPad 不适用于 iPhone 这是我的代码 override func viewDidAppear animated Bool super viewDidA
  • prepareForSegue 和 PerformSegueWithIdentifier 发送方

    我想知道标题中的函数如何工作以及发送者参数 假设单击按钮调用了performSegue方法 那么这是否也调用了prepareSegue方法 是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法 另外 这两个

随机推荐

  • 为什么 Supervisor.start_child 不起作用

    我是 Elixir 的初学者 我有一个应用程序在 application ex 中启动一个自定义主管 代码 defmodule MyApp do use Application def start type args do import S
  • 如何使用 Python 提取在 HTML 页面 javascript 块中定义的 JSON 对象?

    我正在下载其中定义了数据的 HTML 页面 方法如下 我想提取 window blog data 中定义的 JSON 对象 有没有比手动解析更简单的方法 我正在研究 Beautiful Soap 但似乎找不到一种无需解析即可返回确切对象的方
  • 如何在phonegap应用程序中添加滚动条

    我正在 PhoneGap 中为 Android 平台开发一个应用程序 在此应用程序中 不显示滚动条 如何在我的应用程序中显示滚动条 这是我的示例活动 它将显示滚动条 public class MyActivity extends Droid
  • 如何在 Laravel 中为 20 分钟后的每条新记录制定调度程序任务?

    我有一个停车系统 我使用 Angular 6 Laravel 作为后端 但我有一个具体问题 我不知道正确的方法 公园有两个图腾 它们向我的服务器发送一个条目 只有当客户从出口走出图腾并进入付款区时 我才会检查客户是否无效 这是我的代码 当他
  • python中日志文件名存储在哪里?

    我有一个由多个模块组成的 Python 程序 main 模块创建一个文件变量log file用于记录输出 所有其他模块也需要写入该文件 但是 我不想将 主 模块导入到其他模块中 因为这将是一个非常奇怪的依赖项 更不用说由于循环依赖它甚至可能
  • 在父级构造函数中设置窗口所有者时遇到问题

    在 WPF 中 在父窗口的构造函数中将窗口的 Owner 属性设置为其父窗口是否有任何问题 不应该有吧 那么为什么我会得到一个XamlParseException从下面的代码 public partial class MainView Wi
  • 如何使用 sqlalchemy 将初始数据加载到数据库中

    我希望能够在使用 SQLAlchemy 创建表时自动加载数据 在 django 中 你有fixtures https docs djangoproject com en dev howto initial data 它允许您在创建表时轻松地
  • 将 PDF 转换为 HTML,保持布局

    有哪些方法可以将 PDF 转换为 HTML 它可以是任何东西 在线服务 软件 图书馆 首选开源 在后一种情况下 首选 php 或 python 它必须保留原始布局 包括页码 脚注等 保留图像 可以将它们组合为每页一个背景图像 并保留链接 它
  • 使用 Javascript 管理 LinkBut​​ton?

    我有一个LinkButton在视图上称为 退出聊天 我嵌入javascript编码成OnClientClink javascript confirm Are you sure you want to end the session 但是 我
  • 使用引导推拉更改列顺序

    我有 3 列 按以下顺序排列 div class container fluid h1 Hello World h1 p Resize the browser window to see the effect p div class row
  • XCODE 不断崩溃。处理自动布局

    我点击关闭自动布局 现在我单击复选框将其打开 xcode 立即崩溃 每次 我很确定所有表格视图都有一个数据源 我无法从事该项目 请帮忙 Process Xcode 5748 Path Applications Xcode app Conte
  • 如何重命名 zip 存档中的文件而不解压并重新压缩它们?

    我需要将 zip 文件中的所有文件重命名为AAAAA filename txt to BBBBB filename txt 我想知道是否可以自动执行此任务 而无需提取所有文件 重命名 然后再次压缩 一次解压缩一个 重命名并再次压缩是可以接受
  • 变量在赋值之前已被使用

    我在任何地方都找不到我的具体问题的答案 所以我想我应该提出一个新问题 我有一个程序可以在 ASCII 和二进制之间转换文本 它通过在第一个数组中查找输入 获取该输入的索引并查看第二个数组中的索引号 然后将找到的内容写入另一个变量来实现此目的
  • 如何修复“使用 libclang.dylib 插件时 Xcode 意外退出”?

    每次启动 xCode 后不久我都会遇到这个 5 1 1 删除了用户数据 关闭了源代码控制 正如一些帖子所建议的那样 没有效果 仍然崩溃 同时显示索引 永远不会完成 甚至重装了xCode 没有任何效果 还是这么说 有人修复过这样的 xCode
  • 在我的登录表单上放置一个圆形进度条

    我设计了这个登录表单来模拟 movil 的 facebook 登录页面 我使用 Web 服务来执行从应用程序到 API 的请求 登录表单设计 https i stack imgur com coEsh png 我想要做的是在执行请求时放置一
  • 无法删除集合:[NHibernate.Exceptions.GenericADOException]

    我有两个表 表 A 和表 B tableA 有列 tabAId col2 col3 tabAId 主键和标识列 表有列 tabAId 名称 tabAId 不为空 我在tableA的hbm文件中创建了Bag 以维护关系
  • 如何在 ViewController 类范围之外执行 [self.view addSubview: lbl] ?

    如何在 ViewController 类范围之外执行 self view addSubview lbl or 如何在 ViewController 类之外的主视图中的不同类中添加标签或另一个视图 thanks void viewDidLoa
  • PHP 中的 SOAP 服务器错误 - 从类中添加函数

    我正在编写 SOAP 服务器并遇到了一个奇怪的问题 这是 server php 中的相关行 class MyHandler public function construct public function wakeup public fu
  • Magento:更改默认语言

    我又搜索了几个小时 所以我在这里 如何将 Magento 中的默认 英语 语言更改为任何其他语言 基本上 我希望 B 店的所有客户默认首先到达该网站的法语版本 而不是英语版本 多谢 在管理菜单中系统 gt 配置 显示的第一个选项卡应该是Ge
  • 如何通过键值观察 CALayer 的旋转?

    我可以这样访问该值 NSNumber rotationZ myLayer valueForKeyPath transform rotation z 但由于某种原因 如果我尝试 KV 观察该关键路径 则会收到编译器错误 首先 我尝试这样做 m