2017-05-27 6 views
0

Ich habe View-Controller, der einige Text in der Beschriftung mit Scrollview anzeigt, aber ich möchte ein Seitensteuerelement für dieses Label erstellen, die verschiedene Texte in Etiketten mit Seitensteuerung bedeutet. Ich habe folgenden Code für Label.Pagecontrol für Etikett in swift

Import Foundation Import 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) 


} 

Vielen Dank im Voraus.

Antwort

0

erstellen IBOutlet für Seite Controller und Scroll

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

Erstellen Sie ein Array

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

erstellen Delegatmethode für Scroll-Ansicht UIScrollViewDelegate und Methode

class ViewController: UIViewController, UIScrollViewDelegate {} 

Funktion und Delegatmethoden

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

Schließlich Funktion in viewDidLoad nennen()

loadScrollView() 
Verwandte Themen