2017-12-09 10 views
0

저는 scrollview와 pagecontroll을 사용하여 스크롤하고 있습니다. 아래 코드를 사용했지만 pagecontroller의 점을 views에 표시하고 싶습니다. 모든 뷰와 scrollview의 앞에 가져 오려고했으나 작동하지 않았습니다.앞에 페이지 스크롤을 가져 오십시오.

class DummyVC: UIViewController, UIScrollViewDelegate { 

let scrollView = UIScrollView(frame: CGRect(x:0, y:0, width:320,height: 300)) 
var colors:[UIColor] = [UIColor.red, UIColor.blue, UIColor.green, UIColor.yellow] 
var frame: CGRect = CGRect(x:0, y:0, width:0, height:0) 
var pageControl : UIPageControl = UIPageControl(frame: CGRect(x:50,y: 300, width:200, height:50))  

override func viewDidLoad() { 
    super.viewDidLoad() 

    configurePageControl() 

    scrollView.delegate = self 
    scrollView.isPagingEnabled = true 

    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.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.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) 
} 

나는 scrollviews의 subviwes에 이미지를 추가 할 내가 viewDidLoad의 이미지에

답변

0

이동 코드 줄을 표시 점을 원 : configurePageControl()를 범위의 바닥에.