Swift5学习之旅之UISegementedControl(分段控件)UIPageControl(翻页控制)

27 篇文章 0 订阅

Swift5学习之旅-----UISegementedControl(分段控件)UIPageControl(翻页控制)

在这里插入图片描述

相关代码实现

//
//  MySegementControl.swift
//  segmentedcontrol-PageControl
//
//  Created by 小天才智能电脑 on 2021/1/28.
//

import Foundation
import UIKit

class MySegementControl: UISegmentedControl {
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.lightGray
        
        //设置按钮样式
        self.insertSegment(with: UIImage(systemName: "message"), at: 3, animated: true)
        self.insertSegment(with: UIImage(systemName: "phone.bubble.left"), at: 4, animated: true)
        self.insertSegment(with: UIImage(systemName: "video.bubble.left"), at: 5, animated: true)
        self.insertSegment(with: UIImage(systemName: "envelope"), at: 6, animated: true)
        //设置按钮(标题样式)
        self.insertSegment(withTitle: "白色", at: 0, animated: true)
        self.insertSegment(withTitle: "黄色", at: 1, animated: true)
        self.insertSegment(withTitle: "蓝色", at: 2, animated: true)
        //设置响应事件
        self.addTarget(self, action: #selector(segementValue(sender:)), for: .valueChanged)
        //设置某个按钮的宽度
        self.setWidth(100, forSegmentAt: 3)
        //设置某个按钮不可用
        self.setEnabled(false, forSegmentAt: 2)
        //初始化选中按钮,默认为0
        self.selectedSegmentIndex = 2
        //移除选项
//           segmented.removeSegmentAtIndex(1, animated: true)
        self.tintColor = UIColor.purple
        
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    @objc func segementValue(sender: UISegmentedControl){
        let index = sender.selectedSegmentIndex
        let text = String(format: "你点击了%ld个按钮", index)
        print(text)
        switch index {
        case 0:
            self.backgroundColor = UIColor.white
        case 1:
            self.backgroundColor = UIColor.yellow
        case 2:
            self.backgroundColor = UIColor.blue
        case 3:
            self.backgroundColor = UIColor.red
        default:
            self.backgroundColor = UIColor.green
        }
        
    }
}

  • **UIPageControl
    实现滑动改变某个位置的颜色改变
    在这里插入图片描述

在这里插入图片描述
相关代码的实现

import UIKit
class MyPageControl: UIPageControl {
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.numberOfPages = 4
        //不是当前页面的小点颜色
        self.pageIndicatorTintColor = UIColor.gray
        //当前页面的小点颜色
        self.currentPageIndicatorTintColor = UIColor.red
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

class MyScrollView: UIScrollView,UIScrollViewDelegate{
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.contentSize = CGSize(width: self.frame.width * 4, height: self.frame.height - 100)
        self.showsHorizontalScrollIndicator = false
        self.isPagingEnabled = true
        self.delegate = self
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

func setupView() {
        self.view.addSubview(self.pageControl)
        self.view.addSubview(self.scrollView)
        let viewSize = CGRect(x: 100, y: 100, width: self.view.frame.width - 200, height: self.view.frame.height - 300)
        
        for i in 0...3 {
            let view = UIView.init(frame: CGRect.init(x: viewSize.width * CGFloat(i), y: 0, width: viewSize.width, height: viewSize.height - 300))
            if i == 0 {
                view.backgroundColor = UIColor.black
            }else if i == 1{
                view.backgroundColor = UIColor.red
            }else if i == 2{
                view.backgroundColor = UIColor.green
            }else{
                view.backgroundColor = UIColor.blue
            }
            self.scrollView.addSubview(view)
        }
    }

额外实现了自动轮播图,我主页有
https://blog.csdn.net/SCDNBB/article/details/113447037
CSDN 轮播图
在这里插入图片描述

  • 整体项目

GitHub没上传,先用着Dropbox(可能要翻墙)
https://www.dropbox.com/sh/7nqyop7b6ig0yn9/AAAlxgFFdMwdB8HGDJXgDOvaa?dl=0
Dropbox UISegementedControl(分段控件)UIPageControl(翻页控制)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值