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

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10355638.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

    本文将演示创建多种自定义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,  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,  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,  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,  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,  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 }

  • 相关阅读:
    RAID卡 BBU Learn Cycle周期的影响
    Linux下查看Raid磁盘阵列信息的方法
    ROS导航包的介绍
    ROS源码解读(二)--全局路径规划
    ROS源码解读(一)--局部路径规划
    VS运行release版本正常,直接执行exe文件会出现问题
    IFM设备 Linux方面资料
    Map-making Robots: A Review of the Occupancy Grid Map Algorithm
    Eigen 介绍及简单使用
    绘制二维障碍栅格地图
  • 原文地址:https://www.cnblogs.com/strengthen/p/10355638.html
Copyright © 2011-2022 走看看