2017-12-28 65 views
2

私はこれを何時間も探しており、まだ運がありません。私はスクロールビュー内で2つのカスタムビューを使用したい。最初のビューには、ユーザーを次のページに誘導する(スクロールダウンする)サブビューとしてのボタンがあります。しかし、それは決して発射されないボタンアクション。私がスクロールビューのサブビューとしてボタンを使用すると、すべて正常に動作しますが、それは私が望むものではありません。UIView内部のUIButton UIScrollView内でタップアクションを発生しません。

scrollviewビューコントローラのためのコード:

class ViewController: UIViewController { 

    @IBOutlet weak var scrollView: UIScrollView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func viewDidLayoutSubviews() { 
     super.viewDidLayoutSubviews() 
     let redView = View1() 
     redView.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.scrollView.frame.height) 
     self.scrollView.addSubview(redView.view!) 

     let blueView = UIView(frame: CGRect(x: 0, y: self.scrollView.frame.height, width: self.view.frame.width, height: self.scrollView.frame.height)) 
     blueView.backgroundColor = .blue 
     self.scrollView.addSubview(blueView) 

     self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.scrollView.frame.height * 2) 
    } 

    func go(to page: Int) { 
     let y = CGFloat(page) * self.scrollView.frame.size.height 
     self.scrollView.setContentOffset(CGPoint(x: 0, y: y), animated: true) 
    } 
} 

ScrollView Storyboard Configuration

View1をクラスのコード:

class View1: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    @IBAction func didTouchUpInsideMoreInfoButton(_ sender: Any) { 
     print("test") 
    } 
} 

すべてのアイデアは歓迎されています。前もって感謝します。

+0

ボタンについてはどこですか?あなたのコードにボタンが表示されていません –

+0

xibファイルにあります。私はIBActionをView1クラスにのみ接続しています。 –

+0

私はあなたの問題を修正することができましたが、あなたのコードに基づいて、 'Auto Layout'と' UIScrollView'の再学習と、どのように一緒に作業を進めるかを提案します。 Appleのドキュメントは、この分野で本当にうまくいきます。https://developer.apple.com/library/content/technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309-CH1-TNTAG3 – slickdaddy

答えて

0

ビューコントローラのビューを使用していたことがわかりました。何らかの理由でセレクタがこのように動作しません。だから、私がやったことは、UIViewだけを作成して、すべてうまく動作することでした。

0
  1. ボタンuserInteractionが有効かどうかを確認します。
  2. ボタンが別のビュー(UIViewなど)内にある場合、そのボタンをタップすることはできません。これを修正するには、そのビューの上にボタンを追加したいが、その中にはボタンを追加したくない場合がある。あなたのストーリーボード上のどのビューの上でもないことを確認してください。
+0

ボタンuserInteractionが有効です。実行時にこれをチェックします。私のボタンはView1のサブビューです。 View1はUIViewControllerです。私はこのボタンをView1の中に入れる必要があります。そうでないと、レイアウトなしでレイアウト全体を構築し、後で追加する必要があります。 –

関連する問題