2017-05-27 2 views
0

J'ai contrôleur de vue qui affiche du texte dans l'étiquette avec scrollview mais je veux créer un contrôle de page pour cette étiquette signifiant que les textes différents dans les étiquettes avec contrôle de la page. J'ai le code suivant pour l'étiquette.Pagecontrol pour l'étiquette dans swift

importation Fondation importation UIKit

class tips : UIViewController { 



@IBOutlet weak var tipsscroll: UIScrollView! 

@IBOutlet weak var solutionlabel: UILabel! 
override func viewDidLoad() { 
    super.viewDidLoad() 



    solutionlabel.text = "Some text" 

    solutionlabel.numberOfLines = 0 
    solutionlabel.lineBreakMode = NSLineBreakMode.byWordWrapping 
    // solutionlabel.font = UIFont(name:"HelveticaNeue-Bold", size: 14.0) 


} 

Merci à l'avance.

Répondre

0

Créer IBOutlet pour le contrôleur de la page et ScrollView

@IBOutlet weak var pageController: UIPageControl! 
@IBOutlet weak var ScrollController: UIScrollView! 

Créer un tableau

let pageString = ["showsHorizontalScrollIndicator working pagecontroller", "running christmas card contact in ", "from the application you can back the Address"] 

Créer délégué Méthode de défilement UIScrollViewDelegate et méthode

class ViewController: UIViewController, UIScrollViewDelegate {} 

Fonction et méthodes délégué

// MARK:- Page Controller 

func loadScrollView() { 
    let pageCount : CGFloat = CGFloat(pageString.count) 

    ScrollController.backgroundColor = UIColor.clear 
    ScrollController.delegate = self 
    ScrollController.isPagingEnabled = true 
    ScrollController.contentSize = CGSize(width: ScrollController.frame.size.width * pageCount, height: ScrollController.frame.size.height) 
    ScrollController.showsHorizontalScrollIndicator = false 
    ScrollController.alwaysBounceVertical = false 

    pageController.numberOfPages = Int(pageCount) 
    pageController.addTarget(self, action: #selector(self.pageChanged), for: .valueChanged) 

    for i in 0..<Int(pageCount) { 
     print(self.ScrollController.frame.size.width) 

     let textView = UILabel(frame: CGRect(x: self.ScrollController.frame.size.width * CGFloat(i), y: 0, width: ScreenWidth - 30 , height: 30)) 
     textView.text = pageString[i] 
     textView.numberOfLines = 0 
     textView.textColor = UIColor.white 
     textView.textAlignment = .center 
     self.ScrollController.addSubview(textView) 
    } 
} 


//MARK: UIScrollView Delegate 
func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let viewWidth: CGFloat = scrollView.frame.size.width 
    // content offset - tells by how much the scroll view has scrolled. 
    let pageNumber = floor((scrollView.contentOffset.x - viewWidth/50)/viewWidth) + 1 
    pageController.currentPage = Int(pageNumber) 
} 


//MARK: Page tap action 
@objc func pageChanged() { 
    let pageNumber = pageController.currentPage 
    var frame = ScrollController.frame 
    frame.origin.x = frame.size.width * CGFloat(pageNumber) 
    frame.origin.y = 0 
    ScrollController.scrollRectToVisible(frame, animated: true) 
} 

appel Enfin fonction dans viewDidLoad()

loadScrollView()