使用 CGSizeMake 和 CGSize 有什么区别?这个比那个好吗?
What's the difference between using CGSizeMake and CGSize? Is one better than the other?
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 中具有相同的功能,CGSize
构造函数只是比另一个更 "Swifty" 并且提供方便。
虽然作为功能它们没有任何区别,但 CGSizeMake()
is/will 已弃用。 CGSize()
更容易书写和阅读,所以 Apple 更希望您以后使用 CGSize()
。
因此,如果您谈论的是可用性方面的差异,那么 CGSize()
和 CGSizeMake()
之间没有基本差异。
但是,如果您谈论的是两者之间的结构和程序差异,那么这里还有一些代码片段结构和解释。
CGSize()
struct CGSize { var width: CGFloat var height: CGFloat init() init(width width: CGFloat, height height: CGFloat) }
CGSizeMake()
func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize
解释:-
这里的第一种情况,即CGSize()
,代码清楚地表明它是一个通常将高度和宽度作为CGFloat()
并且代表距离向量而不是物理尺寸的结构。作为向量,该值可能为负。
另一方面,在CGSizeMake()
的情况下,我们可以很容易地理解它是一个函数而不是一个结构。一般取高和宽为CGFloat()
和returns一个CGSize()
结构。
例子:-
CGSize()
var sizeValue = CGSize(width: 20, height: 30) //Taking Width and Height
CGSizeMake()
var sizeValue = CGSizeMake(20,30) //Taking Width and Height too but without named parameters
现在如果是纯粹的 swift 用法和代码 CGSize()
比 CGSizeMake()
更简单易懂。你可以从上面的例子中得到正确的..!!!!
谢谢,
希望对您有所帮助。
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 中具有相同的功能,CGSize
构造函数只是比另一个更 "Swifty" 并且提供方便。
虽然作为功能它们没有任何区别,但 CGSizeMake()
is/will 已弃用。 CGSize()
更容易书写和阅读,所以 Apple 更希望您以后使用 CGSize()
。
因此,如果您谈论的是可用性方面的差异,那么 CGSize()
和 CGSizeMake()
之间没有基本差异。
但是,如果您谈论的是两者之间的结构和程序差异,那么这里还有一些代码片段结构和解释。
CGSize()
struct CGSize { var width: CGFloat var height: CGFloat init() init(width width: CGFloat, height height: CGFloat) }
CGSizeMake()
func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize
解释:-
这里的第一种情况,即CGSize()
,代码清楚地表明它是一个通常将高度和宽度作为CGFloat()
并且代表距离向量而不是物理尺寸的结构。作为向量,该值可能为负。
另一方面,在CGSizeMake()
的情况下,我们可以很容易地理解它是一个函数而不是一个结构。一般取高和宽为CGFloat()
和returns一个CGSize()
结构。
例子:-
CGSize()
var sizeValue = CGSize(width: 20, height: 30) //Taking Width and Height
CGSizeMake()
var sizeValue = CGSizeMake(20,30) //Taking Width and Height too but without named parameters
现在如果是纯粹的 swift 用法和代码 CGSize()
比 CGSizeMake()
更简单易懂。你可以从上面的例子中得到正确的..!!!!
谢谢,
希望对您有所帮助。