После преобразования кода в последнюю версию swift 3.0 мне показана эта ошибка.
Также скажите мне решение для CGSize = CGSizeMake(0,0)
static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero
Который также недоступен.
Ответы:
CGRect
Может быть просто создан с использованием экземпляраCGPoint
илиCGSize
, приведенного ниже.Или, если мы хотим указать каждое значение в
CGFloat
илиDouble
илиInt
, мы можем использовать этот метод.CGPoint
Может быть создан такCGSize
Может быть создан такТакже размер и точка с 0 в качестве значений, это можно сделать следующим образом.
CGRectZero
&CGPointZero
заменено наCGRect.zero
&CGPoint.zero
вSwift 3.0
.источник
Быстрое исправление для CGRectMake, CGPointMake, CGSizeMake в Swift3 и iOS10
Добавьте эти расширения:
Затем перейдите к « Найти и заменить в рабочей области » Найти CGRectMake, CGPointMake, CGSizeMake и заменить их на CGRect, CGPoint, CGSize
Эти шаги могут сэкономить все время, поскольку XCode прямо сейчас не дает нам быстрое преобразование из Swift 2+ в Swift 3
источник
В Swift 3 вы можете просто использовать
CGPoint.zero
илиCGRect.zero
вместоCGRectZero
илиCGPointZero
.Впрочем, в Swift 4 так
CGRect.zero
и'CGPoint.zero'
будет работатьисточник
Если вы хотите использовать их как в Swift 2, вы можете использовать эти функции:
Для CGRectMake:
Для CGPointMake:
Для CGSizeMake:
Просто поместите их вне любого класса, и это должно работать. (У меня работает как минимум)
источник
Структуры, как и все другие символы в Core Graphics и других API, стали чище и также включают имена параметров. https://developer.apple.com/reference/coregraphics#symbols
Пример CGPoint:
Пример CGVector:
Пример CGSize:
Пример CGRect:
Блог Apple
Изменения в синтаксисе Swift и переименовании API в Swift 3 делают язык более естественным и предоставляют еще больше возможностей Swift-y при вызове фреймворков Cocoa. Популярные платформы Core Graphics и Grand Central Dispatch имеют новые, намного более чистые интерфейсы в Swift.
источник
Попробуйте следующее:
Это для Свифта последней версии
источник
Бонус Swift 3: Почему никто не упомянул короткую форму?
.zero
вместо тогоCGPoint.zero
Когда тип определен, вы можете спокойно его пропустить.
источник
Вы можете использовать это с заменой CGRectZero
источник
В Swift 4 это работает как ниже
источник
Для CGSize
источник