2016-03-28 8 views
1

​​というカスタムをテーブルビューに配置し、名前をactivityIndicatorとしました。私は1つのアクションボタンも持っています。そのボタンを押すと、アクティビティインジケータが3秒間表示され、その後は非表示になります。それをすばやく行う方法即座に3秒間アクティビティインジケータを表示する2.0テーブルビュー

@IBAction func RefineButtonPress(sender: AnyObject) { 

} 

私を助けてください!

答えて

3

単機能の実装

@IBAction func RefineButtonPress(sender: AnyObject) { 

    self.activityIndicator.startAnimating() 
    self.activityIndicator.hidden = false 

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (Int64)(3 * NSEC_PER_SEC)), dispatch_get_main_queue()){ 
     self.activityIndicator.stopAnimating() 
     self.activityIndicator.hidden = true 

    }; 
} 
+0

これも私のテーブルビューを 'self.tableview.rのようにリロードする必要がありますeload() '...そのディスパッチ内で私はテーブルビューをリロードできますか? – user5513630

+0

はい、あなたはそれをdispatch_afterに入れることもできます。 – Fonix

+0

私は1つの問題に直面しています!私は広告のカスタムアクティビティインジケータです。そして行動のためのすべてのコードを加えました。 ViewControllerからUIActivityIndi​​catorViewへのactivityIndi​​catorコンセントが無効であるというエラーが1つあります。アウトレットは繰り返しコンテンツに接続できません。 '。テーブルビューにiboutletアクティビティインジケータを追加するにはどうすればいいですか?他のアイデアは何ですか? – user5513630

2

まず以下のように名前hideActivityIndicatorであなたのクラス内の1つのメソッドを作成します。

func hideActivityIndicator() 
{ 
    activityIndi.hidden = true 
} 

は、その後、あなたが呼び出したいセレクタを実行中にそのメソッドを呼び出します。

func hideActivityIndicator() { 
    self.activityIndicator.stopAnimating() 
    self.activityIndicator.isHidden = true 
} 

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{ 
    self.activityIndicator.startAnimating() 
    self.perform(#selector(IAPViewController.hideActivityIndicator), with: nil, afterDelay: 2.0) 
} 

を当然のことながら、これはどのような私である:すなわち以下のように、ボタンのクリックイベントに次のように

self.performSelector("hideActivityIndicator", withObject: nil, afterDelay: 3.0) 
1

スウィフト3作品のためにこれを試すことができますあなたのニーズに合わせて変更する必要があります

関連する問題