2017-12-01 6 views
0

ロードされたxibからボタンにターゲットを追加するときに問題があります。ボタンがxib addTargetから実行されました。

私はこれを持っている:

var cleanFilters = FilterLabelView() 

override func viewWillAppear(_ animated: Bool) { 
    navigationItem.title = "EXPLORE WORKOUTS" 
    self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "OpenSans-CondensedBold", size: 16.0)!] 
    setFilterLabel() 
} 

func setFilterLabel() { 
    cleanFilters = (Bundle.main.loadNibNamed("FilterLabelView", owner: self, options: nil)?.first as? FilterLabelView)! 
    self.view.addSubview(cleanFilters) 

    cleanFilters.translatesAutoresizingMaskIntoConstraints = false 
    self.view.addConstraint(NSLayoutConstraint(item: cleanFilters, attribute: .top, relatedBy: .equal, toItem: self.topLayoutGuide, attribute: .bottom, multiplier: 1, constant: 30)) 
    self.view.addConstraint(NSLayoutConstraint(item: cleanFilters, attribute: .trailingMargin, relatedBy: .equal, toItem: self.view, attribute: .trailingMargin, multiplier: 1, constant: 35)) 

    cleanFilters.deleteButton.addTarget(self, action: #selector(hideFilterLabel), for: .touchUpInside) 
    cleanFilters.confirmButton.addTarget(self, action: #selector(setDefaultFilters), for: .touchUpInside) 

    cleanFilters.isHidden = defaultsManager.isDefaultFilters() 
    if !cleanFilters.isHidden { 
     self.workoutsCollection.isUserInteractionEnabled = false 
    } 
} 

func hideFilterLabel() { 
    cleanFilters.isHidden = true 
    self.workoutsCollection.isUserInteractionEnabled = true 
} 

func setDefaultFilters() { 
    defaultsManager.setDefaultFilters() 
    cleanFilters.isHidden = true 
    getAllWorkouts() 
} 

deleteButtonとconfirmButtonアクションが呼び出されていないと、私はその理由を把握することはできません。

ここで私がロードてるFilterLabelViewです:あなたは、あなたのボタンが隠されていないことを確認してください

import UIKit 

class FilterLabelView: UIView { 
@IBOutlet weak var deleteButton: UIButton! 
@IBOutlet weak var confirmButton: UIButton! 
@IBOutlet weak var labelTapRecongnizer: UITapGestureRecognizer! 
} 
+0

「cleanFilters」とは何ですか? – Mannopson

+0

'FilterLabelView' xibは、ターゲットを追加しようとしているボタンを持っています。 –

+0

' var cleanFilters:FilterLabelView! 'right? – Mannopson

答えて

0

ていますか?ボタンが隠れている場合、ヒットテストはタッチを行うことができないことを覚えておいてください...あなたのボタンは実際にはほとんどありませんか、またはisUserInteractionEnabledをfalseとして持っている可能性があります。ビューに問題があるかどうかは、 Debug view hierarchy

+0

'isUserInteractionEnabled'が真であることを確認しました。しかしそれはうまくいかなかった。 –

関連する問題