2016-07-29 3 views
1

이 같은 출력을 얻을, 스위프트를 사용하여 아이폰 OS에서 이미지를 표시하는 페이지 제어 스크롤 뷰를 구현하기 위해 노력하고 이미지를 표시 보기는 다른보기 컨트롤러의 일부입니다. 나는 봤지만 필요한 출력을 얻는 데 도움이되지 못했습니다. 아무도 도와 줄 수 있습니까?스크롤 뷰는 아이폰 OS

+0

이 질문을하시기 바랍니다 명확히. 또한 요청한 기능을 구현하는 방법을 보여주는 코드 샘플을 제공하십시오. –

답변

1

답변이 조금 늦었습니다.

스위프트 배 : 그래서, 다른 사람에게 도움이 될 수 있습니다

class YOUR_VIEW_CONTROLLER: UIViewController, UIScrollViewDelegate 

지금 UIScrollView이 같은 UIPageControl의 콘센트에 연결 : 모든

첫째,이 같은 위임을 제공합니다 :

@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var pageControl: UIPageControl! 

참고 : 나는 C를 사용하고 있습니다 olours 배열. 대신 이미지 배열을 사용할 수 있습니다.

var colors:[UIColor] = [UIColor.red, UIColor.blue, UIColor.green, UIColor.yellow] 
var frame: CGRect = CGRect(x:0, y:0, width:0, height:0) 

지금 바로 복사하여 클래스에 아래 코드를 붙여 넣습니다

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    configurePageControl() 

    self.view.bringSubview(toFront: pageControl) 
    scrollView.delegate = self 
    self.view.addSubview(scrollView) 
    for index in 0..<4 { 

     frame.origin.x = self.scrollView.frame.size.width * CGFloat(index) 
     frame.size = self.scrollView.frame.size 

     let subView = UIView(frame: frame) 
     subView.backgroundColor = colors[index] 
     self.scrollView.addSubview(subView) 
    } 

    self.scrollView.isPagingEnabled = true 


    self.scrollView.contentSize = CGSize(width:self.scrollView.frame.size.width * 4,height: self.scrollView.frame.size.height) 

    pageControl.addTarget(self, action: #selector(self.changePage(sender:)), for: UIControlEvents.valueChanged) 

} 

func configurePageControl() { 
    // The total number of pages that are available is based on how many available colors we have. 
    self.pageControl.layer.zPosition = 1 

    self.pageControl.numberOfPages = colors.count 
    self.pageControl.currentPage = 0 
    self.pageControl.tintColor = UIColor.red 
    self.pageControl.pageIndicatorTintColor = UIColor.black 
    self.pageControl.currentPageIndicatorTintColor = UIColor.green 
    self.view.addSubview(pageControl) 

} 

// MARK : TO CHANGE WHILE CLICKING ON PAGE CONTROL 
func changePage(sender: AnyObject) ->() { 
    let x = CGFloat(pageControl.currentPage) * scrollView.frame.size.width 
    scrollView.setContentOffset(CGPoint(x:x, y:0), animated: true) 
} 

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { 

    let pageNumber = round(scrollView.contentOffset.x/scrollView.frame.size.width) 
    pageControl.currentPage = Int(pageNumber) 
}