Po przekonwertowaniu kodu do najnowszej wersji Swift 3.0 pojawia się ten błąd.
Powiedz mi również rozwiązanie CGSize = CGSizeMake(0,0)
static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero
Który jest również niedostępny.
Odpowiedzi:
CGRect
Można go po prostu utworzyć za pomocą wystąpienia aCGPoint
lub tegoCGSize
, które podano poniżej.Lub jeśli chcemy określić każdą wartość w
CGFloat
lubDouble
lubInt
, możemy użyć tej metody.CGPoint
Można utworzyć w ten sposób.CGSize
Można utworzyć w ten sposób.Również rozmiar i punkt z 0 jako wartości, można to zrobić w ten sposób.
CGRectZero
iCGPointZero
zastąpiony przezCGRect.zero
&CGPoint.zero
inSwift 3.0
.źródło
Szybka poprawka dla CGRectMake, CGPointMake, CGSizeMake w Swift3 i iOS10
Dodaj te rozszerzenia:
Następnie przejdź do „ Znajdź i zamień w obszarze roboczym ” Znajdź CGRectMake, CGPointMake, CGSizeMake i zamień je na CGRect, CGPoint, CGSize
Te kroki mogą oszczędzać cały czas, ponieważ Xcode w tej chwili nie zapewnia nam szybkiej konwersji ze Swift 2+ na Swift 3
źródło
W Swift 3 możesz po prostu użyć
CGPoint.zero
lubCGRect.zero
zamiastCGRectZero
lubCGPointZero
.Jednak w Swift 4
CGRect.zero
i'CGPoint.zero'
będzie działaćźródło
Jeśli chcesz ich używać jak w swift 2, możesz użyć tych funkcji:
W przypadku CGRectMake:
W przypadku CGPointMake:
W przypadku CGSizeMake:
Po prostu umieść je poza klasą i powinno działać. (Działa dla mnie przynajmniej)
źródło
Struktury, a także wszystkie inne symbole w Core Graphics i innych interfejsach API stały się bardziej przejrzyste i zawierają także nazwy parametrów. https://developer.apple.com/reference/coregraphics#symbols
Przykład CGPoint:
Przykład CGVector:
Przykład rozmiaru CGS:
Przykład CGRect:
Blog Apple
Szybka zmiana składni i zmiany nazw API w Swift 3 sprawia, że język wydaje się bardziej naturalny, i zapewnia jeszcze więcej Swift-y podczas wywoływania struktur Cocoa. Popularne frameworki Core Graphics i Grand Central Dispatch mają nowe, znacznie czystsze interfejsy w Swift.
źródło
Spróbuj wykonać następujące czynności:
To jest dla najnowszej wersji swift
źródło
Swift 3 Bonus: Dlaczego nikt nie wspomniał o skróconej formie?
.zero
zamiastCGPoint.zero
Po zdefiniowaniu typu można go bezpiecznie pominąć.
źródło
Możesz użyć tego z zamiennikiem CGRectZero
źródło
W Swift 4 działa jak poniżej
źródło
Dla CGSize
źródło