30

哪个更好用?我更喜欢 CGRect.size.width 因为它看起来更好。但是,我的同事说 CGRectGetWidth 更好。

4

2 回答 2

21

CGRectGetWidth/Height 将在返回它们之前标准化宽度或高度。归一化基本上只是检查宽度或高度是否为负,如果是,则将其取反使其为正。

在这里回答

于 2011-05-11T21:28:33.697 回答
12

矩形的宽度和高度可以是负数。我不知道这在实践中何时会成为现实,但根据Apple 文档

CGGeometry Reference 定义了几何图元的结构和对其进行操作的函数。数据结构 CGPoint 表示二维坐标系中的一个点。数据结构 CGRect 表示矩形的位置和尺寸。数据结构 CGSize 表示宽度和高度的维度。

存储在 CGRect 数据结构中的高度和宽度可以是负数。例如,原点为 [0.0, 0.0] 且大小为 [10.0,10.0] 的矩形完全等同于原点为 [10.0, 10.0] 且大小为 [-10.0,-10.0] 的矩形。您的应用程序可以通过调用 CGRectStandardize 函数来标准化一个矩形,即确保高度和宽度存储为正值。本参考资料中描述的所有将 CGRect 数据结构作为输入的函数都会在计算结果之前隐式标准化这些矩形。因此,您的应用程序应避免直接读取和写入存储在 CGRect 数据结构中的数据。相反,使用此处描述的函数来操作矩形并检索它们的特征。

于 2014-05-27T22:14:05.217 回答