Advertisement
Guest User

TabBar

a guest
Feb 14th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 7.32 KB | None | 0 0
  1. import UIKit
  2. import Material
  3. import Alamofire
  4. import SwiftyJSON
  5.  
  6. class Rewards_1_ViewController: UIViewController, UIScrollViewDelegate, UITableViewDataSource, UITableViewDelegate {
  7.    
  8.     let containerScrollView = UIScrollView()
  9.    
  10.     let navbarView: NavigationBarView = NavigationBarView()
  11.    
  12.     let contentView    = UIView()
  13.     let indikatorView  = UIView()
  14.  
  15.     let personalView   = UIView()
  16.     let diningView     = UIView()
  17.     let partnerView    = UIView()
  18.  
  19.     let menuButton = MaterialButton()
  20.     let cartButton = MaterialButton()
  21.  
  22.     let personalButton = MaterialButton()
  23.     let diningButton   = MaterialButton()
  24.     let partnerButton  = MaterialButton()
  25.    
  26.     let tableView = UITableView()
  27.     let dataTable = ["Data 1", "Data 2", "Data 3", "Data 4", "Data 5", "Data 6", "Data 7", "Data 8", "Data 9","Data 10"]
  28.  
  29.     override func viewDidLoad() {
  30.         super.viewDidLoad()
  31.        
  32.         view.backgroundColor = MaterialColor.lime.base
  33.        
  34.         containerScrollView.contentSize   = CGSize(width: view.frame.width * 3, height: view.frame.height)
  35.         containerScrollView.delegate      = self
  36.         containerScrollView.pagingEnabled = true
  37.  
  38.         navbarView.backgroundColor    = MaterialColor.white
  39.         contentView.backgroundColor   = MaterialColor.grey.darken1
  40.         indikatorView.backgroundColor = UIColor(red: 72/255.0, green: 208/255.0, blue: 165/255.0, alpha: 1.0)
  41.        
  42.         personalView.backgroundColor = MaterialColor.blue.base
  43.         diningView.backgroundColor   = MaterialColor.amber.base
  44.         partnerView.backgroundColor  = MaterialColor.cyan.base
  45.        
  46.         // MARK: Menu button.
  47.         let menuImage: UIImage? = UIImage(named: "Hamburger Menu@1x")
  48.         menuButton.pulseColor   = MaterialColor.white
  49.         menuButton.pulseScale   = false
  50.         menuButton.setImage(menuImage, forState: .Normal)
  51.         menuButton.setImage(menuImage, forState: .Highlighted)
  52.         menuButton.addTarget(self, action: "menuAction:", forControlEvents: .TouchUpInside)
  53.        
  54.         let cartImage: UIImage? = UIImage(named: "Cart icon passive")
  55.         cartButton.pulseColor   = MaterialColor.white
  56.         cartButton.pulseScale   = false
  57.         cartButton.setImage(cartImage, forState: .Normal)
  58.         cartButton.setImage(cartImage, forState: .Highlighted)
  59. //        cartButton.addTarget(self, action: "cartAction:", forControlEvents: .TouchUpInside)
  60.        
  61.         // MARK: Personal button.
  62.         personalButton.setTitle(NSLocalizedString("Personal", comment: ""), forState: .Normal)
  63.         personalButton.titleLabel!.font = UIFont(name: "GothamRounded-Medium", size: 14)
  64.         personalButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
  65.         personalButton.tag = 0
  66.         personalButton.addTarget(self, action: "didTouchControlButton:", forControlEvents: .TouchUpInside)
  67.        
  68.         // MARK: Dining button.
  69.         diningButton.setTitle(NSLocalizedString("Dining", comment: ""), forState: .Normal)
  70.         diningButton.titleLabel!.font = UIFont(name: "GothamRounded-Medium", size: 14)
  71.         diningButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
  72.         diningButton.tag = 1
  73.         diningButton.addTarget(self, action: "didTouchControlButton:", forControlEvents: .TouchUpInside)
  74.        
  75.         // MARK: Partner button.
  76.         partnerButton.setTitle(NSLocalizedString("Partner", comment: ""), forState: .Normal)
  77.         partnerButton.titleLabel!.font = UIFont(name: "GothamRounded-Medium", size: 14)
  78.         partnerButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
  79.         partnerButton.tag = 2
  80.         partnerButton.addTarget(self, action: "didTouchControlButton:", forControlEvents: .TouchUpInside)
  81.        
  82.         // MARK: Tabel View
  83.         tableView.delegate      =   self
  84.         tableView.dataSource    =   self
  85.         tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
  86.        
  87.         view.addSubview(containerScrollView)
  88.         view.addSubview(navbarView)
  89.         view.addSubview(contentView)
  90.         diningView.addSubview(tableView)
  91.        
  92.         navbarView.addSubview(menuButton)
  93.         navbarView.addSubview(cartButton)
  94.        
  95.         containerScrollView.addSubview(personalView)
  96.         containerScrollView.addSubview(diningView)
  97.         containerScrollView.addSubview(partnerView)
  98.        
  99.         contentView.addSubview(personalButton)
  100.         contentView.addSubview(diningButton)
  101.         contentView.addSubview(partnerButton)
  102.         contentView.addSubview(indikatorView)
  103.        
  104.        
  105.     }
  106.  
  107.     override func viewDidLayoutSubviews() {
  108.         super.viewDidLayoutSubviews()
  109.        
  110.         // MARK: Table Frame
  111.         tableView.frame = CGRectMake(0, 0, personalView.frame.width , personalView.frame.height)
  112.        
  113.         // MARK: View Frame
  114.         containerScrollView.frame = view.frame
  115.         contentView.frame         = CGRect(x: 0, y: navbarView.frame.height, width: view.frame.width, height: 50)
  116.         indikatorView.frame       = CGRect(x: 0, y: contentView.frame.height - 5.0, width: contentView.frame.width / 3, height: 5.0)
  117.        
  118.         personalView.frame = CGRect(x: 0, y: navbarView.frame.height + contentView.frame.height, width: view.frame.width, height: view.frame.height)
  119.         diningView.frame   = CGRect(x: view.frame.width, y: navbarView.frame.height + contentView.frame.height, width: view.frame.width, height: view.frame.height)
  120.         partnerView.frame  = CGRect(x: view.frame.width * 2, y: navbarView.frame.height + contentView.frame.height, width: view.frame.width, height: view.frame.height)
  121.        
  122.         // MARK: Button Frame
  123.         menuButton.frame     = CGRect(x: 0, y: 20, width: 50, height: 50)
  124.         cartButton.frame     = CGRect(x: navbarView.frame.width - 50, y: 20, width: 50, height: 50)
  125.         personalButton.frame = CGRect(x: 0, y: 0, width: contentView.frame.width / 3, height: contentView.frame.height)
  126.         diningButton.frame   = CGRect(x: contentView.frame.width / 3, y: 0, width: contentView.frame.width / 3, height: contentView.frame.height)
  127.         partnerButton.frame  = CGRect(x: contentView.frame.width / 3 * 2, y: 0, width: contentView.frame.width / 3, height: contentView.frame.height)
  128.        
  129.     }
  130.    
  131.     func didTouchControlButton(button: UIButton) {
  132.         containerScrollView.setContentOffset(CGPoint(
  133.             x: containerScrollView.frame.width * CGFloat(button.tag),
  134.             y: 0),
  135.             animated: true)
  136.     }
  137.    
  138.     func menuAction(button: UIButton) {
  139.         let menu = MenuViewController()
  140.         self.presentViewController(menu, animated: true, completion: nil)
  141.     }
  142.    
  143.     func scrollViewDidScroll(scrollView: UIScrollView) {
  144.         var newFrame             = self.indikatorView.frame
  145.         newFrame.origin.x        = scrollView.contentOffset.x / 3
  146.         self.indikatorView.frame = newFrame
  147.     }
  148.    
  149.     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  150.         return dataTable.count
  151.     }
  152.    
  153.     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  154.         let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
  155.        
  156.         cell.textLabel?.text = self.dataTable[indexPath.row]
  157.         return cell
  158.     }
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement