使用CGSizeMake和CGSize有什么区别? 这个比那个好吗?

CGSize(width: 360, height: 480)CGSizeMake(360, 480)似乎具有相同的效果。 一个人喜欢另一个? 有什么不同?

CGSize构造函数是CGSize上的Swift扩展:

 extension CGSize { public static var zero: CGSize { get } public init(width: Int, height: Int) public init(width: Double, height: Double) } 

CGSizeMake是一个从Objective-C桥接的剩余内联函数:

 /*** Definitions of inline functions. ***/ // ... public func CGSizeMake(width: CGFloat, _ height: CGFloat) -> CGSize 

两者在Swift中都具有相同的function, CGSize构造函数比其他的更“ CGSize ”,并提供方便。

虽然作为function他们没有任何区别, CGSizeMake()是/将被弃用。 编写和读取CGSize()比较容易,因此Apple更喜欢使用CGSize()作为将来的工具。

因此,如果您正在讨论可用性方面的差异,那么CGSize()CGSizeMake()之间没有基本的区别。

但是,如果您正在讨论这两者之间的结构和编程差异,那么这里也是一些代码片段结构和解释。

  1. CGSize()

     struct CGSize { var width: CGFloat var height: CGFloat init() init(width width: CGFloat, height height: CGFloat) } 
  2. CGSizeMake()

     func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize 

说明 : –

在第一种情况下,即CGSize() ,代码清楚地表明其结构通常将高度和宽度作为CGFloat()并且表示距离vector而不是物理尺寸。 作为一个向量,价值可能是负面的。

另一方面在CGSizeMake()情况下,我们可以很容易地理解它的一个函数而不是一个结构。 它通常将高度和宽度作为CGFloat()并返回一个CGSize()结构。

例如 : –

  1. CGSize()

     var sizeValue = CGSize(width: 20, height: 30) //Taking Width and Height 
  2. CGSizeMake()

     var sizeValue = CGSizeMake(20,30) //Taking Width and Height too but without named parameters 

现在在纯粹的快速使用和代码CGSize()CGSizeMake()更简单和容易理解的情况下。 你可以从上面的例子中得到它.. !!!!

谢谢,

希望这有助于。