【问题标题】:Why NSShadow's and CALayer's shadowOffset expressed via CGSize type and not CGPoint type为什么 NSShadow 和 CALayer 的 shadowOffset 通过 CGSize 类型而不是 CGPoint 类型表示
【发布时间】:2021-06-30 12:57:11
【问题描述】:

我想知道在使shadowOffsetNSShadowCALayer 通过CGSize 类型而不是CGPoint 类型表达的背后是否有历史推理(或任何推理)

我相信,就其含义而言,“阴影偏移”是一个向量,指向与layer.frame.origin(或layer.bounds.origin)相关的阴影原点。所以用CGPoint 代替CGSize 似乎更方便。

提前致谢!

【问题讨论】:

  • CGSizedocumentation 稍微提到了这一点。注意“距离向量”这个词。我认为使用具有实际长度的东西(例如宽度和高度)来表示距离而不是没有长度的点会更合适。
  • @Sweeper 感谢您的参考。但这只会引出更进一步的问题——“Apple 为什么选择使用 CGSize 来表示向量(包括负值)?”
  • 你似乎没有明白我的意思。关键词是“距离”。 shadowOffset 是一个距离向量。尺寸有宽度和高度,它们更像是距离,而不是点的 x 和 y。

标签: ios swift objective-c uikit shadow


【解决方案1】:

点是坐标空间中的一个位置。大小描述 x&y 维度中的距离。

如果您将 CGPoint 用于 shadowOffset,则它需要是相对于其他点的点。什么点?阴影路径的中心?起源?就边界而言,还是框架?

偏移量是二维的量。一个点就是一个位置。将CGSize 用于shadowOffset 对我来说非常有意义,而使用一个点是有意义的。

【讨论】:

  • 知道了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
相关资源
最近更新 更多