GeometryHelpers

iOS CGSize, CGPoint, CGRect, CGFloat 辅助工具

CGFloat

诸如 roundedToNearestPixel 这样的辅助方法,可以将浮点数四舍五入到最近的像素,而不是点。在像素边界对齐时非常有用。

CGPoint

诸如 with(x:), with(y:) 这样的辅助方法,可以快速更改组件。

创建

更改

偏移

翻转 & 镜像

到像素/点

到点/像素

其他

CGSize

创建

转换为 Rects

更改

减法

堆叠

到点/像素

纵横比适应

其他

CGRect

派生点

更改

偏移

缩进

到点

适应

UIView

当设置 UIViewcenterbounds 时,必须特别注意视图实际上是否在像素边界上对齐。如果不是,视图会稍微模糊,因为网格的像素与设备的像素网格不对齐。

safeCentersafeSize 会自动为您执行此操作:它们确保视图的未变换帧将像素对齐。

使用 UIView.frame 会补偿视图的当前 transform:它实际上返回实际位置。通常,人们希望设置帧而不用考虑 transform,例如,在进行缩放动画时。一种方法是设置 centerbounds

safeFrame 通过为您计算 safeCentersafeSize 并正确设置它来包装此操作,忽略任何变换。

欧几里得几何辅助工具

还有许多用于处理简单欧几里得几何的辅助工具

斜率

斜率模拟直线的斜度。三种情况

创建

方法

直线

直线穿过具有特定斜率的点,并且没有起点和终点:它永远延伸。

创建

方法

获取位置/值

其他

线段

线段是两点之间直线的一部分。

创建

方法

这是一个圆 :)

创建

方法

圆弧

圆弧。圆弧从圆上的一个点开始,到圆上的一个点结束,并且可以顺时针或逆时针方向移动。

创建

方法