2017-11-04 6 views
0

簡単な質問!事前にnoobinessのため申し訳ありません。私は最近、iOSアプリケーションの開発を開始し、ボタンをクリックするためのビューをロードしたいと考えました。私はswift4で働いています。Loading View in Swift

@IBAction func btnAddItem_AddDrinks_Click(_ sender: Any) { 
     //[self dismissViewControllerAnimated:YES completion:nil]; 
     //[self.navigationController popViewControllerAnimated:YES]; 
     if strIsSpecial == nil { 
      ValidationString.sharedManager().showAlert(withTitle: "", messageBody: "Please select either Regular, Special or Free") 
     } 
     else if ValidationString.sharedManager().isNullString(txtfldOunce.text!) == true { 
      // ValidationString.sharedManager().showAlert(withTitle: ALERT_TITLE, messageBody: "Ounce" + (ALERT_FIELD_SHOULD_NOT_BLANK)) 

      let alert = UIAlertController(title: "Alert", message: "Ounces shouldn't be left blank", preferredStyle: UIAlertControllerStyle.alert) 
      alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil)) 
      self.present(alert, animated: true, completion: nil) 
     } 
     else if ValidationString.sharedManager().isNullString(txtfldUserReference_AddDrinks.text!) == true { 

      let alert = UIAlertController(title: "Alert", message: "Drink Name shouldn't be left blank", preferredStyle: UIAlertControllerStyle.alert) 
      alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil)) 
      self.present(alert, animated: true, completion: nil) 

      //ValidationString.sharedManager().showAlert(withTitle: ALERT_TITLE, messageBody: "Drink Name" + (ALERT_FIELD_SHOULD_NOT_BLANK)) 
     } 
     else { 
      if view_Loading != nil { 
       view_Loading?.removeFromSuperview() 
       view_Loading = nil 
       obj_LoadView = nil 
      } 
      obj_LoadView = LoadView(frame: <#CGRect#>) 
      view_Loading = obj_LoadView?.showActivity("Loading....") 
      view.addSubview(view_Loading!) 
      view.isUserInteractionEnabled = false 

電流誤差はobj_LoadView = loadViewメソッド(フレーム:<#CGRect#>)のための "Editorがプレースホルダである" です。私はCGRectのために何かを置く必要があることを知っていますが、何がわかりません。どんな助けでも感謝しています!

+1

iOSアプリケーションの開発を始めたばかりなので*命名ガイドラインに従ってください。 Swift/Objective-CのPHPやJavaScriptの変数名とは異なり、* snake_cased *ではなくcamelCased *とします。適切な 'CGRect'を渡す必要があります。最も簡単な値は '.zero'ですが、非ゼロの' width'と 'height'を指定する必要があります。 – vadian

答えて

2

入力を開始すると、Xcodeによって自動的に文が自動的に作成されます。自動補完された引数を変更しないと、そのエラーが発生します。

ここでの問題は、この行です:

obj_LoadView = LoadView(frame: <#CGRect#>) 

代わりにプレースホルダの実際のCGRectに変更を取得する必要があります<#CGRect#>

CGRect新しいビューたいサイズ行います

obj_LoadView = LoadView(frame: CGRect(x: 0.0, y: 0.0, width: 400.0, height: 400)) 

ビューのフレーム400x400のポイントになるだろう。

ビューのフルサイズの中にビューを作成したい場合は、あなたがこれを行うことができます:

obj_LoadView = LoadView(frame: view.frame) 
+0

ようこそ。ここでStackoverflowで、誰かがあなたの質問に答える場合は、それを受け入れることになっています(緑色のチェックボタンを押す)。私はあなたのプロフィールを見て、あなたは答えを受け入れていません。あなたがそれらのいずれかを受け入れなければ、人々はあなたの質問に答える可能性は低いです... –

0

私は個人的に

class LoadingView: UIView { 
 
    
 
    private var activityIndicatorView: UIActivityIndicatorView { 
 
     
 
     let view = UIActivityIndicatorView(activityIndicatorStyle: .white) 
 
     view.startAnimating() 
 
     
 
     view.center = self.center 
 
     return view 
 
    } 
 
    
 
    private var isPresenting: Bool = false 
 
    
 
    override init(frame: CGRect) { 
 
     super.init(frame: frame) 
 
     self.backgroundColor = .black 
 
     self.alpha = 0.0 
 
    } 
 
    
 
    required init?(coder aDecoder: NSCoder) { 
 
     fatalError("init(coder:) has not been implemented") 
 
    } 
 
    
 
    
 
    func present() { 
 
     guard let window = UIApplication.shared.keyWindow else { return } 
 
     window.addSubview(self) 
 
     fadeIn() 
 
    } 
 
    
 
    func dismiss() { 
 
     guard isPresenting == true else { return } 
 
     fadeOut() 
 
    } 
 
    
 
    private func fadeIn() { 
 
     UIView.animate(withDuration: 0.25, delay: 0.0, options: .curveEaseInOut, animations: { 
 
      self.alpha = 0.5 
 
     }) { (bool: Bool) in 
 
      self.addSubview(self.activityIndicatorView) 
 
      self.isPresenting = true 
 
     } 
 
    } 
 
    
 
    private func fadeOut() { 
 
     UIView.animate(withDuration: 0.25, delay: 0.0, options: .curveEaseInOut, animations: { 
 
      self.alpha = 0.0 
 
     }) { (bool: Bool) in 
 
      self.removeFromSuperview() 
 
      self.isPresenting = false 
 
     } 
 
    } 
 
}

自分activityIndi​​catorViewを作成したいです