2016-11-24 19 views
-4

2つのエラーがあります。このエラーは、新しいxcode 8 swift 3.0でプロジェクトを開いたときに発生します。このエラーを修正する方法はわかりません。私はいくつかのバグを解決しました。しかし、ここでは、上記のエラーのためにこの行で打たれました。条件バインディングの初期化子には 'CGFloat'ではないオプションの型が必要です

マイエラーが行の下にあります:この上記方法において

func keyboardWillShow(_ notification: Notification) { 
     keyboardHasBeenShown = true 

     guard let userInfo = (notification as NSNotification).userInfo else {return} 
     guard let endKeyBoardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue.minY else {return} 

     if tmpContentViewFrameOrigin == nil { 
     tmpContentViewFrameOrigin = self.contentView.frame.origin 
     } 

     if tmpCircleViewFrameOrigin == nil { 
     tmpCircleViewFrameOrigin = self.circleBG.frame.origin 
     } 

     var newContentViewFrameY = self.contentView.frame.maxY - endKeyBoardFrame 
     if newContentViewFrameY < 0 { 
      newContentViewFrameY = 0 
     } 
     let newBallViewFrameY = self.circleBG.frame.origin.y - newContentViewFrameY 
     self.contentView.frame.origin.y -= newContentViewFrameY 
     self.circleBG.frame.origin.y = newBallViewFrameY 
    } 

guard let endKeyBoardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue.minY else {return} 

エラー:方法以下、この中

Initializer for conditional binding must have Optional type, not 'CGFloat' 

第2のエラー:

open func showCustom(_ title: String, subTitle: String, color: UIColor, icon: UIImage, closeButtonTitle:String?=nil, duration:TimeInterval=0.0, colorStyle: UInt=SCLAlertViewStyle.success.defaultColorInt, colorTextButton: UInt=0xFFFFFF, circleIconImage: UIImage? = nil, animationStyle: SCLAnimationStyle = .topToBottom) -> SCLAlertViewResponder { 


     var red: CGFloat = 0, green: CGFloat = 0, blue: CGFloat = 0, alpha: CGFloat = 0 

     color.getRed(&red, green: &green, blue: &blue, alpha: &alpha) 

     var colorAsUInt32 : UInt32 = 0 
     colorAsUInt32 += UInt32(red * 255.0) << 16 + UInt32(green * 255.0) << 8 + UInt32(blue * 255.0) 

     let colorAsUInt = UInt(colorAsUInt32) 

     return showTitle(title, subTitle: subTitle, duration: duration, completeText:closeButtonTitle, style: .success, colorStyle: colorAsUInt, colorTextButton: colorTextButton, circleIconImage: icon, animationStyle: animationStyle) 
    } 

次の行でエラーが発生しました:

colorAsUInt32 += UInt32(red * 255.0) << 16 + UInt32(green * 255.0) << 8 + UInt32(blue * 255.0) 

エラー:

式が妥当な時間で解決されるにはあまりに複雑でした。質問を追加する必要の異なるサブ表現

+1

可能性のある重複した[結合条件付きの初期化子は、オプションのタイプを持っている必要があり、ない「文字列」](のhttp:// stackoverflowの.com/questions/32768274 /条件付きバインディングのためのイニシャライザ必要な型のない文字列) –

+0

http://stackoverflow.com/questions/25451001/getting-keyboard-size- Swift 2 + 3コードのuserinfo-in-swiftから、通知からキーボードサイズを取得します。 –

+2

全く関係のない2つの問題を1つの質問に投稿しないでください。 –

答えて

1

への発現を壊す考慮がマーク:の

guard let endKeyBoardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as? AnyObject).cgRectValue.minY else {return} 

colorAsUInt32 += UInt32(red * 255.0) << 16 
colorAsUInt32 += UInt32(green * 255.0) << 8 
colorAsUInt32 += UInt32(blue * 255.0) 
+0

を識別できないので、私の2番目のエラーについても助けてください。 – mack

+1

@mackは式を分割します。 –

+0

私は5日前までにiosを初めて利用しています。このプロジェクトは私の古い開発者に打撃を与えます。だから私はどのようにこれのためのexperssionを分割する方法を知りません。 – mack

関連する問題