Swift ScrollView - contentSize 不能接受变量 Int

Swift ScrollView - contentSize can't take a variable Int

尝试设置 scrollView 的 contentSize,我 运行 解决了这个问题 (Xcode 6.4)...

这两个都很完美:

scrollView.contentSize = CGSize(width:self.view.frame.width, height:1000)

scrollView.contentSize = CGSizeMake(self.view.frame.width, 1000)

一旦涉及到 let(或 var),这些就不起作用了:

let testing = 1000
scrollView.contentSize = CGSize(width:self.view.frame.width, height:testing)

错误:找不到类型 'CGSize' 的初始值设定项,它接受类型为“(宽度:CGFloat,高度:Int)”的参数列表

let testing = 1000
scrollView.contentSize = CGSizeMake(self.view.frame.width, testing)

错误:无法使用类型为“(CGFloat, Int)”的参数列表调用 'CGSizeMake'

let 语句更改为以下内容:

let testing:CGFloat = 1000

您需要这样做,因为 CGSizeMake 函数需要两个相同类型的参数,因此您可以同时生成两个 int 或同时生成两个 CGFloat。在这种情况下,首先使用 testing 作为 CGFloat 可能更容易。在其他情况下,您可能想尝试

let testing = 1000
scrollView.contentSize = CGSizeMake(Int(self.view.frame.width), testing)

或者:

let testing = 1000
scrollView.contentSize = CGSizeMake(self.view.frame.width, CGFloat(testing))

因此两者属于同一类型。

  • 数字文字没有明确的类型。它的类型是在编译器对其进行评估时推断出来的。

  • 数字变量必须有明确的类型。默认类型为 Int

    let testing : CGFloat = 1000.0
    scrollView.contentSize = CGSize(width:self.view.frame.width, height:testing)