CGSize(width: 360, height: 480)
和CGSizeMake(360, 480)
看起来具有相同的效果。一个比另一个更受欢迎吗?它们的区别是什么?
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)
}
< p > CGSizeMake
是从 Objective-C 桥接过来的残留内联函数:/*** Definitions of inline functions. ***/
// ...
public func CGSizeMake(width: CGFloat, _ height: CGFloat) -> CGSize
在 Swift 中,CGSize
构造函数和另一个函数具有相同的功能,只不过 CGSize
构造函数更符合“Swifty”的风格,因此提供了更加方便的使用方式。
CGSize(...)
比使用CGSizeMake(...)
更加简洁。 - JALCGRectGetWidth
等函数。 - user498982CGRectGet[X]
函数在 Swift 中应该仍然以相同的方式工作,尽管我不确定这是否是您要问的。如果这不是您要问的,请提出一个新问题。 - JAL虽然从功能上来说它们没有任何区别,但CGSizeMake()
将会被弃用。使用CGSize()
更容易书写和阅读,因此苹果建议您在未来使用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()
作为高度和宽度,并返回一个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
CGSize()
比CGSizeMake()
更简单易懂。你可以从上面的例子中看到这一点..!!!