2017-12-28 16 views
2

나는 몇 시간 동안 이것을 찾고 있었지만 아직 행운이 없습니다. scrollview 내부에 두 개의 사용자 정의보기를 사용하고 싶습니다. 첫 번째보기에는 사용자를 다음 페이지로 안내하는 하위보기로 단추가 있습니다 (아래로 스크롤). 그러나 결코 해고 된 적이없는 버튼 동작. scrollview 하위보기로 단추를 사용하면 모든 것이 정상적으로 작동하지만 원하는 것은 아닙니다.UIButton 내부의 UIView 내부에서 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

뷰 1 클래스의 코드 :

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) 탭을 허용하지 않는 경우가 있습니다. 이 문제를 해결하려면보기의 TOP ON/OFF 버튼을 추가하는 것이 좋습니다. 스토리 보드의 어떤보기에도 보이지는 않지만 위에 있는지 확인하십시오.
+0

버튼 userInteraction이 활성화되었습니다. 나는 이것을 런타임에 점검한다. 내 단추는 View1 하위보기입니다. View1은 UIViewController입니다. 이 단추가 View1 안에 있어야합니다. 그렇지 않으면 레이아웃없이 전체 레이아웃을 작성해야하고 나중에 추가 할 것입니다. 아키텍처 결정으로 매우 나쁜 것 같습니다. –

관련 문제