2017-05-04 2 views
3

나는 내 탭바 컨트롤러에 3 개의 탭이 있으며, 나는 틴더가 손가락 터치를 사용하여 탭을 전환하는 것처럼이 탭 사이를 전환하려고합니다. 나는 UISwipeGestureRecognizer을 사용했지만, Tinder (데이트 앱)와 완전히 똑같지는 않습니다. Tabbar controller 중 하나에 UISwipeGestureRecognizer을 추가 한 다음 선택한 인덱스를 변경하는 기능을 추가했습니다. 그러나 애니메이션은 손가락 터치로 제어되지 않습니다. 나는 손가락으로 만지작 거려야한다.손가락 스 와이프를 사용하여 탭 막대 컨트롤러의 탭 변경

+0

당신이'UIPanGestureRecognizer'를 시도를? – SLearner

+0

손가락 터치와 스 와이프를 사용하여'SelectedIndex'를 변경하는'TabBarControllerAnimation' 메소드를 제안 해 주시겠습니까? –

답변

0

나는 조금 늦은 오전하지만 내 ANS 발견 - 나는 4 UIviewcontrollers 프로그래밍 방식으로 만든 다음 그것의 배열을 생성

합니다.

var views = [CareTeamTableViewController(),VFCChatQViewController(), NewAccountViewController(), ShareViewController()] 

는 그럼 난 내 주요 UIViewController에

private func initMainScroll() { 
     scrollView = UIScrollView.init() 
     scrollView?.delegate = self 
     scrollView?.showsHorizontalScrollIndicator = false 
     scrollView?.isPagingEnabled = true 
     self.view.addSubview(scrollView!) 
    } 

에있는 ScrollView를 추가하고 다음과 같이 전망 배열 추가 :

func setupScrollView(complete:()->()) { 
     scrollView?.frame = views.first!.view.frame 
     scrollView?.contentSize = CGSize(width: CGFloat(views.count) * UIScreen.main.bounds.width, height: 0) 
     _ = views.map({ addViewToScrollView($0) }) 
     _ = views.map({ $0.view.frame.origin = CGPoint(x: CGFloat(views.index(of: $0)!) * UIScreen.main.bounds.width, y: 0) }) 
     complete() 
    } 

    func addViewToScrollView(_ viewController: UIViewController) { 
     scrollView?.addSubview(viewController.view) 
     viewController.willMove(toParentViewController: self) 
     addChildViewController(viewController) 
    } 
1

나는 최선의 방법은 모든 탭보기를 UIScrollView에 넣는 것이라고 생각합니다. 서로 옆에 놓습니다.

tabbarController에 스크롤보기 대리자 메소드를 구현하십시오. 당신은 아마하는 사용자가이 같이 스크롤 중지 될 때 당신이 볼 알고 scrollViewDidEndScrollingAnimationscrollViewDidEndDecelerating가 필요합니다 여기

let page_width=UIScreen.main.bounds.width 
let page=Int(floor((scrollView.contentOffset.x-page_width/2)/page_width)+1) 

, 나는 당신의 탭보기 각각의 화면과 같은 크기입니다 가정합니다.

+0

'UIPanGestureRecognizer'를 사용하여이 작업을 수행 할 수 있습니까? –

+0

당신은 스크롤 뷰와 함께'UIPanGestureRecognizer'를 필요로하지 않습니다. –

+0

각 탭에는 3 개의 다른 UIViewController가 있습니다. 따라서 'UIScrollView'에 추가하는 것은 어려울 것입니다. –

관련 문제