Swift ScrollView - contentSize不能采用变量Int

时间:2015-08-01 04:30:31

标签: ios swift scrollview cgfloat cgsize

尝试设置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'的初始值设定项,它接受类型'(width:CGFloat,height:Int)'的参数列表

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

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

2 个答案:

答案 0 :(得分:2)

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))

这两者都属于同一类型。

答案 1 :(得分:0)

  • 数字文字没有显式类型。它的类型是在编译器评估时推断的。

  • 数字变量必须具有显式类型。默认类型为Int

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