2016-12-19 5 views
1

ユーザーが画像をドラッグした後にラベルを表示しようとしています。問題はラベルが後に表示されないことです。他のすべては正常に動作しますが、ラベルだけが機能しません。私は数時間の解決策を見つけようとしましたが、何が間違っているのか分かりません。 UIPanGestureRecognizerで呼び出されUIPanGestureRecognizerの後にラベルを表示

機能:助けるため

func pullDownView(gesture: UIPanGestureRecognizer) { 
    if(gesture.state == .changed) { 
     if(iconImage.center.y - (iconImage.frame.size.height/2) < view.frame.size.height/3) { 
      let translationY = gesture.translation(in: view).y 
      iconImage.center.y += translationY 

      gesture.setTranslation(CGPoint(x: 0, y: 0), in: view) 
      iconImage.updateConstraints() 
     }else{ 
      iconImage.isUserInteractionEnabled = false 
      iconImage.center.y = (view.frame.size.height/3) + (iconImage.frame.size.height/2) 
      iconImage.updateConstraints() 
     } 
    } 

    if(gesture.state == .cancelled || gesture.state == .ended || gesture.state == .failed) { 
     if(iconImage.center.y - (iconImage.frame.size.height/2) >= view.frame.size.height/6) { 
      if(iconImage.center.y != (view.frame.size.height/3) + (iconImage.frame.size.height/2)) { 
       iconImage.isUserInteractionEnabled = false 
       iconImage.center.y = (view.frame.size.height/3) + (iconImage.frame.size.height/2) 
       iconImage.updateConstraints() 

       getAccounts() 
      } 
     }else{ 
      iconImage.center.y = view.frame.size.height/2 
      iconImage.updateConstraints() 
     } 
    } 
} 

func getAccounts() { 
    noAccountsLabel = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 50)) 
    noAccountsLabel.text = "No accounts found!" 
    noAccountsLabel.font = UIFont(name: "Verdana", size: 20) 
    noAccountsLabel.textAlignment = .center 
    noAccountsLabel.center = CGPoint(x: view.frame.size.width/2, y: noAccountsLabel.frame.size.height * 2) 

    view.addSubview(noAccountsLabel) 
} 

ありがとう! Steff。

+0

を[OK]を、単なるテキストの色がない..です明白なことを確実にしたかったです背景と同じですか? – Fluidity

+0

あなたはブロックが呼び出されていることを確信しています。ブロックには 'getAccounts'がありますか? – Fluidity

+0

はい、文字列を印刷しようとしましたが、正常に動作しました。そして、テキストの色は同じではなく、変更しようとしましたが、まだ動作しません。 –

答えて

1
func getAccounts() { 
    let noAccountsLabel = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 50)) 
    noAccountsLabel.text = "No accounts found!" 
    noAccountsLabel.font = UIFont(name: "Verdana", size: 20) 
    noAccountsLabel.textAlignment = .center 
    noAccountsLabel.center = CGPoint(x: view.frame.size.width/2, y: noAccountsLabel.frame.size.height * 2) 

    view.addSubview(noAccountsLabel) 
} 

私のために働きました。

PS:私はここで間違ったロジックを行っているかもしれないが、あなたは関係なく、いくつかのif文をクリアするためにguardを使用することができます。

guard gesture.state == .cancelled || gesture.state == .ended || gesture.state == .failed else { return } 

guard (iconImage.center.y - (iconImage.frame.size.height/2) >= view.frame.size.height/6) else { return } 

if(iconImage.center.y != (view.frame.size.height/3) + (iconImage.frame.size.height/2)) { 
    iconImage.isUserInteractionEnabled = false 
    iconImage.center.y = (view.frame.size.height/3) + (iconImage.frame.size.height/2) 
    iconImage.updateConstraints() 

    getAccounts() 
} 
+0

oops、 '! 'を編集しました – Fluidity

+0

ラベルを表示するソリューションが見つかりましたが、iconImageは以前の場所に戻ります。これをどのように修正できますか? –

+0

ラベルを表示するためにあなたは何をしましたか? – Fluidity

関連する問題