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

本文主要是介绍Swift5学习之旅之UISegementedControl(分段控件)UIPageControl(翻页控制),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 整体项目
    如果这篇文章有帮助的话点个赞👍
    GitHub没上传,先用着Dropbox(可能要翻墙)
    https://www.dropbox.com/sh/7nqyop7b6ig0yn9/AAAlxgFFdMwdB8HGDJXgDOvaa?dl=0
    Dropbox UISegementedControl(分段控件)UIPageControl(翻页控制)

  • UISegementedControl

在这里插入图片描述

相关代码实现

//
//  MySegementControl.swift
//  segmentedcontrol-PageControl
//
//  Created by 小天才智能电脑 on 2021/1/28.
//import Foundation
import UIKitclass 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)//初始化选中按钮,默认为0self.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.selectedSegmentIndexlet text = String(format: "你点击了%ld个按钮", index)print(text)switch index {case 0:self.backgroundColor = UIColor.whitecase 1:self.backgroundColor = UIColor.yellowcase 2:self.backgroundColor = UIColor.bluecase 3:self.backgroundColor = UIColor.reddefault: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 = falseself.isPagingEnabled = trueself.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(翻页控制)

这篇关于Swift5学习之旅之UISegementedControl(分段控件)UIPageControl(翻页控制)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331445

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操