2017-03-07 5 views
1

私のコードは、2ページとボタン付きの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

テキストとコード行の間に3つの大きな画像を挿入する際のポイントは何ですか?あなたは本当に人々にそのサイズでそれらを見せてもらう必要がありますか? –

+0

infocontrollerのボタンアクションのコードを追加します。 –

答えて

0

これはViewWillAppearまたはViewWillAppear問題のように聞こえる、あなたがそれらの機能には何も設定されているかどうかを確認します。

+0

それがどのように役立つか分かりません。 –

+0

scrollViewを含むviewControllerに戻ると、それらの2つの関数は実装されていれば自動的に呼び出されるので、いずれかのscrollViewコードを作成した場合は、 –

+0

に戻るときに呼び出されます。するべきことは、nslayout制約を使用して情報スライドを拡張することです。そうすれば、私はView Controllerを変更するつもりはありません。 –

関連する問題