2017-03-07 57 views
1

我的代码是一个uiscrolview有两个页面和一个按钮。问题是,如果我在视图控制器信息(中间图像)。然后点击按钮返回到滚动查看它回到页面1.所以无论从信息幻灯片到滚动视图,它总是回到查看控制器1,并且循环重置。如果我在vc 2上打信息按钮,请转到信息幻灯片。如果我按下了信息幻灯片上的按钮,我想返回到vc 2.我的代码如下。本质上,循环总是重置,如果可能,我想修复。循环重置在滚动视图(swift3)

page one

enter image description here

enter image description here

import UIKit 

class ViewController: UIViewController, UIScrollViewDelegate { 

@IBOutlet var pageControl: UIPageControl! 
@IBOutlet var slideScrollView: UIScrollView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    slideScrollView.delegate = self 


    let slides:[slide] = createSlides() 
    setupSlideScrollView(slides: slides) 
    pageControl.numberOfPages = slides.count 
    pageControl.currentPage = 0 
    view.bringSubview(toFront: pageControl) 



} 
override var prefersStatusBarHidden: Bool { 
    return true 
} 

func createSlides() -> [slide]{ 
    let slide1:slide = Bundle.main.loadNibNamed("slide", owner: self, options: nil)?.first as! slide 
    slide1.label.text = "1" 






    let slide2:slide = Bundle.main.loadNibNamed("slide", owner: self, options: nil)?.first as! slide 
    slide2.label.text = "2" 






    return [slide1,slide2 ] 
} 

func setupSlideScrollView(slides:[slide]) { 
    slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height) 
    slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height) 

    for i in 0..<slides.count{ 
     slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height) 
     slideScrollView.addSubview(slides[i]) 
     slideScrollView.isPagingEnabled = true 

    } 
} 

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let pageIndex = round(scrollView.contentOffset.x/view.frame.width) 
    pageControl.currentPage = Int(pageIndex) 

}} 
+0

在文本和代码行之间插入三个大尺寸图像的要点是什么?你真的需要让人们看到他们的规模? –

+0

添加信息控制器的按钮动作代码。 –

回答

0

这听起来像一个ViewWillAppearViewWillAppear问题,检查您是否设置这些功能的东西。

+0

我不明白这将如何帮助。 –

+0

当你回到包含scrollView的viewController时,如果你实现了这两个函数,它们将自动被调用,所以如果你在任何一个scrollView中做了任何scrollView代码,当你回去时它会被回想起来 –

+0

是的,我认为最简单要做的事情是使用nslayout约束并使用它们来扩展信息幻灯片。这样我就不会改变视图控制器。 –

相关问题