[Swift通天遁地]九、拔剑吧-(4)使用开源类库创建可滑动的Segment分段控件

本文将演示创建多种自定义Segment分段样式的控件

首先确保已经安装了所需的第三方类库。双击查看安装配置文件【Podfile】

1 platform :ios, ‘12.02 use_frameworks!
3 
4 target 'DemoApp' do
5     source 'https://github.com/CocoaPods/Specs.git'
6     pod 'TwicketSegmentedControl'
7 end

根据配置文件中的相关设置,安装第三方类库。

安装完成之后,双击打开项目文件【DemoApp.xcodeproj】

在左侧的项目导航区,打开视图控制器的代码文件【ViewController.swift】

现在开始编写代码,创建一个可滑动的分段控件。

 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 }

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10355638.html