CGRectMake、CGPointMake、CGSizeMakeなどがSwift 3.0で削除されたため、CGRectMake(0,0,w,h) to CGRect(x:0,y:0,width:w,height:h)
のようなすべての初期化を自動的に更新する方法があります。手動プロセスは非常に苦痛です。
コードをCurrent Apple構文に変換するときにSwiftが自動変換しない理由がわからない...
最も簡単な解決策は、おそらくAppleが取り除いた関数を再定義することです。例:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect {
return CGRect(x: x, y: y, width: width, height: height)
}
それをモジュールに入れると、CGRectMake
へのすべての呼び出しが再び機能します。
短い答え:それをしないでください。 Appleを上司にさせないでください。私嫌いCGRect(x:y:width:height:)
。バグを報告しました。イニシャライザは、CGRectMake
のようにCGRect(_:_:_:_:)
である必要があると思います。私はCGRectでそれを提供する拡張機能を定義し、その拡張機能をすべての単一プロジェクト開始した瞬間に挿入しました。
extension CGRect {
init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) {
self.init(x:x, y:y, width:w, height:h)
}
}
そうすれば、「CGRectMake」を「CGRect」に変更するだけで、すべて完了です。