2016-07-29 173 views
1

我试图实现与网页控制滚动视图来显示使用斯威夫特,得到这样的输出在iOS的图像显示图像这里查看是另一个视图控制器的一部分。 我GOOGLE了,但没有得到所需的输出帮助。 任何人都可以帮我吗?滚动视图中的iOS

+0

澄清你的问题吧。此外,请提供代码示例,其中介绍了如何尝试实现所请求的功能。 –

回答

1

答案有点晚。因此,可能对别人有所帮助:

斯威夫特3X:

首先,给这样的代表团:

class YOUR_VIEW_CONTROLLER: UIViewController, UIScrollViewDelegate 

现在连接的UIScrollViewUIPageControl像这样的店铺:

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