CGRectZero与CGRect.zeroRect?

ma1*_*w28 28 struct cgrect cgrectmake swift

两者似乎在Swift中都是一样的.我们应该使用哪个?

  1. CGRectZero VS CGRect.zeroRect
  2. GRectMake(1, 1, 1, 1)vs CGRect(x: 1, y: 1, width: 1, height: 1) UIEdgeInsetsMake(1, 1, 1, 1)vsUIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)
  3. 其他模式

rob*_*off 73

更新2

在Swift 3中,CGRectZero不再可用.CGRect.zero是你唯一的选择.学习它,了解它,实现它.

UPDATE

CGRect.zeroRectCGRect.zero在iOS 9.0中重命名为.这是足够接近CGRectZero(以及相同数量的击键,计shift为击键),我建议CGRect.zero任何不是使用习惯的Objective-C编码器的人CGRectZero.

原版的

没有特别理由支持其中一个.您应该使用您或您的团队喜欢的任何风格.

就个人而言,我会使用,CGRectZero因为它更短,我已经习惯了Objective-C.

我也是CGRectMake出于同样的原因.

我可能会使用UIEdgeInsets(top:left:bottom:right:)因为我很少看到实例UIEdgeInsets,所以我不太可能记住参数的顺序UIEdgeInsetsMake.(当你输入一个调用时,你会获得它的占位符UIEdgeInsetsMake,但是当你读取现有代码时,没有关于参数顺序的提示.)

  • `CGRectZero`是遗产 - 你需要使用的是Swift2中的`.zero` (3认同)
  • 你不能总是省略类型:`var rect = .zero`将不起作用. (2认同)