【问题标题】:loop reseting in scrollview (swift3)在滚动视图中循环重置(swift 3)
【发布时间】:2017-07-27 05:12:00
【问题描述】:

我的代码是一个带有两个页面和一个按钮的 uiscrollview。问题是,如果我在视图控制器信息(中图)上。然后点击按钮返回到滚动视图,它会返回到第 1 页。所以无论从信息幻灯片到滚动视图发生什么,它总是返回到视图控制器 1 并且循环重置。如果我在 vc 2 上点击信息按钮转到信息幻灯片。如果我点击信息幻灯片上的按钮,我想返回 vc 2。我的代码如下。本质上,循环总是会重置,如果可能的话,我想修复它。

    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)

}}

【问题讨论】:

  • 在文本和代码行之间插入三个大小的大图像有什么意义?你真的需要让人们看到他们这么大吗?
  • 添加信息控制器按钮动作代码

标签: ios swift loops uiscrollview xib


【解决方案1】:

这听起来像是 ViewWillAppearViewWillAppear 问题,请检查您是否在这些函数中设置了任何内容。

【讨论】:

  • 我不明白这会有什么帮助。
  • 当你返回到包含 scrollView 的 viewController 时,如果你实现了这两个函数,它们将被自动调用,所以如果你在其中任何一个中编写了任何 scrollView 代码,它会在你去的时候被调用返回
  • 是的,我认为最简单的方法是使用 nslayout 约束并使用它们来展开信息幻灯片。这样我就不会改变视图控制器了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 2021-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多