Swift ScrollView - contentSize не может принимать переменную Int

Пытаюсь установить contentSize scrollView, и я столкнулся с этой проблемой (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)

Ошибка: не удается вызвать CGSizeMake со списком аргументов типа (CGFloat, Int)


person RanLearns    schedule 01.08.2015    source источник


Ответы (2)


Измените инструкцию let на следующее:

let testing:CGFloat = 1000

Вам нужно сделать это, поскольку функция CGSizeMake требует двух параметров одного типа, поэтому вы можете либо сделать оба ints, либо сделать их обоими CGFloats. В этом случае, вероятно, проще использовать testing как CGFloat. В других случаях вы можете попробовать что-то вроде

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

Or:

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

Так что оба они одного типа.

person kabiroberai    schedule 01.08.2015

  • Числовой литерал не имеет явного типа. Его тип определяется в тот момент, когда он оценивается компилятором.

  • Числовая переменная должна иметь явный тип. Тип по умолчанию - Int.

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