★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-cjyjzhwi-ky.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
目錄:[Swift]通天遁地Swiftios
本文將演示建立多種自定義Segment分段樣式的控件。git
首先確保已經安裝了所需的第三方類庫。雙擊查看安裝配置文件【Podfile】github
1 platform :ios, ‘12.0’ 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'TwicketSegmentedControl' 7 end
根據配置文件中的相關設置,安裝第三方類庫。swift
安裝完成以後,雙擊打開項目文件【DemoApp.xcodeproj】數組
在左側的項目導航區,打開視圖控制器的代碼文件【ViewController.swift】xcode
如今開始編寫代碼,建立一個可滑動的分段控件。微信
1 import UIKit 2 //引入已經安裝的第三方類庫 3 import TwicketSegmentedControl 4 5 //使當前的類遵照第三方協議,用來監聽分段控件的切換事件。 6 class ViewController: UIViewController, TwicketSegmentedControlDelegate { 7 8 var imageView : UIImageView! 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // Do any additional setup after loading the view, typically from a nib. 12 13 //初始化一個圖像視圖,做爲每一個分段所顯示的內容 14 self.imageView = UIImageView(frame: CGRect(x: 0, y: 100, width: 320, height: 160)) 15 //從項目中讀取一張圖片,做爲圖片視圖的顯示內容。 16 self.imageView.image = UIImage(named: "chart") 17 //將圖像視圖添加到根視圖 18 self.view.addSubview(self.imageView) 19 20 //初始化一個字符串數組,做爲三個分段的標題文字 21 let titles = ["Daily", "Weekly", "Monthly"] 22 //初始化一個矩形區域,做爲分段控件的顯示區域 23 let frame = CGRect(x: 5, y: 40, width: view.frame.width - 10, height: 40) 24 25 //初始化一個指定顯示區域的分段控件。 26 let segmentedControl = TwicketSegmentedControl(frame: frame) 27 //設置分段控件的各個分段的標題文字 28 segmentedControl.setSegmentItems(titles) 29 30 //設置分段控件的字體顏色爲灰色 31 segmentedControl.defaultTextColor = .gray 32 //設置處於焦點狀態的分段的字體顏色爲白色 33 segmentedControl.highlightTextColor = .white 34 //設置畫滑塊的背景顏色爲橙色 35 segmentedControl.sliderBackgroundColor = .orange 36 //經過分段控件的移動方法,使第二個分段處於焦點狀態。 37 segmentedControl.move(to: 1) 38 39 //設置分段控件的代理對象,位當前的視圖控制器對象。 40 //即便用當前控制器對象的方法,監聽分段控件的切換事件。 41 segmentedControl.delegate = self 42 43 //最後將分段控件添加到根視圖。 44 view.addSubview(segmentedControl) 45 } 46 47 //添加一個方法,用來監聽分段控件的切換事件。 48 func didSelect(_ segmentIndex: Int) 49 { 50 //當選擇第一個分段時 51 if segmentIndex == 0 52 { 53 //修改圖像視圖的顯示區域 54 self.imageView.frame = CGRect(x: 0, y: 80, width: 320, height: 160) 55 //修改圖像視圖的顯示內容 56 self.imageView.image = UIImage(named: "chart") 57 } 58 //當選擇第二個分段時 59 else if segmentIndex == 1 60 { 61 //修改圖像視圖的顯示區域 62 self.imageView.frame = CGRect(x: 0, y: 80, width: 320, height: 340) 63 //修改圖像視圖的顯示內容,使圖像視圖顯示另外一張圖片。 64 self.imageView.image = UIImage(named: "data") 65 } 66 //當選擇第三個分段時的狀況 67 else if segmentIndex == 2 68 { 69 //修改圖像視圖的顯示區域 70 self.imageView.frame = CGRect(x: 0, y: 80, width: 320, height: 500) 71 //修改圖像視圖的顯示內容,使圖像視圖顯示另外一張圖片。 72 self.imageView.image = UIImage(named: "total") 73 } 74 } 75 76 override func didReceiveMemoryWarning() { 77 super.didReceiveMemoryWarning() 78 // Dispose of any resources that can be recreated. 79 } 80 }