Невозможно вычесть CGFloats

Я пытаюсь включить код из управления клавиатурой документацию, созданную Apple, в мое приложение. До сих пор мне удавалось анализировать Objective-C в Swift, но есть одна строка, с которой у меня возникли проблемы. Вот это в контексте (последняя строка, где возникает ошибка):

func keyboardWasShown(aNotification: NSNotification) {
    let info = aNotification.userInfo as NSDictionary!
    let kbSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue()

    let contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize!.height, 0.0)
    scrollView.contentInset = contentInsets
    scrollView.scrollIndicatorInsets = contentInsets

    let aRect = view.frame
    aRect.size.height -= kbSize!.height //This line gives me trouble.
}

В этой строке я получаю сообщение об ошибке "Не удается вызвать "-=" со списком аргументов типа "(CGFloat, CGFloat)"". Есть ли обходные пути для решения этой проблемы или я что-то делаю не так?


NB: я пытался привести их обоих к числам с плавающей запятой, но получаю сообщение об ошибке «Невозможно вызвать ‘init’ со списком аргументов типа ‘($T4, $T9)’». Когда я привожу числа с плавающей точкой as к разным переменным, а затем вычитаю их, я получаю сообщение об ошибке «Невозможно вызвать '-=' со списком аргументов типа '(Float, Float)'».


person Blake Morgan    schedule 27.12.2014    source источник


Ответы (1)


Пожалуйста, измените let aRect на var aRect, переменная может быть изменена.

person gabbler    schedule 27.12.2014
comment
let используется для определения констант и var для определения переменных. - person gabbler; 27.12.2014