ios UI 基础开发二
第一节:UIPickerView、UIPickerViewDataSource、UIPickerViewDelegate

设置约束,如果要设置两个兄弟的约束,可以按住option键,用鼠标右键把a拖到b上面,表示a按照b来对齐


生成随机数

如果后面列的数据,依赖前面的数据,需要把前面选择的列的数据,保存下来,因为不保存,后面更新的时候,前面的列并没有变化,会造成索引越界

添加UIView



第二节:显示方法的注释快捷方法
光标定位到方法上,按一下esc键,会显示注释
第三节:全局断点,会在发生崩溃的地方断点

第四节:UIDatePicker


为什么用weak和 strong



设置locale 语言

第五节:NSDateFormatter
第六节:UIToolBar
系统封装的一个view,里面是UIToolbarItem

第七节:plist 属性

第八节:pch文件




第九节:UIApplicaiton
keywindow 是应用的主界面

这个key 表示状态栏的显示不交给View controller 管理了,而是交给应用程序![]()

启动过程

如果要保存应用数据,应该在enter background的时候保存,因为如果先进入后台,过一会再kil app,获取不到teminate 事件
加载自定义controller
通过代码加载

通过storyboard 加载


通过xib创建



self.view 的懒加载

就是调用 [self loadView] 方法,可以重写该方法
第十节:UIWindow
继承自UIView

第十一节:UINavigationController





通过storyboard 设置
在storyboard中拖一个navigation controller,然后右键,设置root controller
上面有一个navigation item 控件
连线push 和 show 的区别
show 不会添加navigation item
右键连线

NavigationItem
只有样式上的区别,一个字没加粗,一个加粗了



View的生命周期


删除的时候是倒着来,比如栈的结构为 红->绿->蓝 ,如果从红->蓝,销毁的时候,先销毁绿,在销毁红,因为蓝的强指针先没了
第十二节:Segue


自动型
手动型




第十三节:数据存储


finder ->前往->前往文件夹
simpholder2.app 快捷前往沙盒工具

plist 存储
自定义对象不能存到plist 文件,因为它没有writeToFile 方法


偏好设置(NSUserDefaults)



归档解档(NSKeyedArchive、NSKeyedUnArchive)
它是二进制的文件,归档解档的对象要遵循NSCoding协议,文件路径还是在Document路径
归档的时候,要告诉归档那些属性,解档的时候也是要告诉解档哪些属性
temp目录:NSTemporaryDirectory


第十四节:UITabBarController
高度49



第十五节:图片保持图片的长宽
选中ui view,edit->size to fit (command =)
第十六节:Modal
两个界面之间有逻辑关系,用push,没关系用modal


第十七节:Quartz2d


CGContextRef






能用oc的就用oc
draw rect

画图 矩形、圆角矩形、椭圆、圆弧



样式


渲染样式
填充且描边


奇偶填充规则

非零绕数规则

画图 饼图、柱状图、进度条

第十八节:矩阵操作:旋转、缩放、平移
在把路径放到上下文之前进行操作才有效,是对上下文进行的操作

图形上下文栈
save 表示入栈,restore表示出栈

内存管理 (CGPath的释放)



绘制文字

attribute 就是 nsattributename 里面的字符串

绘制图片

模拟image View
这种方式创建的image 是图片的默认大小,模拟image view 就是上面的UIimage 的draw方法
图片裁剪


裁剪的是图片,并不是上下文
图形上下文

保存图片


裁切image

image 保存到相册 
屏幕截图

第十九节:触摸事件




可以通过这俩值,获取偏移量
NSSet

多点触摸
按住option键 拖鼠标可以模拟多点触摸,默认View 没开启多点触控,需要开启

view 的这个属性clip subview 类似于Mask

事件传递

相关文章:
ios UI 基础开发二
第一节:UIPickerView、UIPickerViewDataSource、UIPickerViewDelegate 设置约束,如果要设置两个兄弟的约束,可以按住option键,用鼠标右键把a拖到b上面,表示a按照b来对齐 生成随机数 如果后面列的数据,依赖前…...
失配树学习笔记
失配树,是一种奇妙的数据结构,它利用 KMP、LCA 解决求两前缀的最长公共 Border 的问题。 首先介绍一下什么是 Border,我们知道 nxt 数组是前后缀相同的最大长度,Border 相当于是 nxt 数组的弱化版,只是去掉了“最大”…...
【Electron】Not allowed to load local resource
问题描述 使用 audio 标签播放音频文件,控制台报错 Not allowed to load local resource。 Not allowed to load local resource原因分析 通常是安全策略所引起的。Electron 默认情况下禁止加载本地资源,以防止潜在的安全风险。 解决方案 在 main.js…...
Maven 基础教程系列
Maven是一个项目开发管理和理解工具。基于项目对象模型的概念:构建、依赖关系管理、文档创建、站点发布和分发发布都由pom.xml声明性文件控制。Maven可以通过插件进行扩展,以使用许多其他开发工具来报告或构建过程。 一、Maven 使用教程-CSDN博客 二、…...
c++之类和对象
1.auto 可以自动推导结果的类型 typeid()可以打印类型 引用也可以 auto真正的价值可以简化迭代器的写法 并且auto定义的变量必须初始化。 不能做参数 返回值也不可以用auto auto不能用来声明数组 如果想要修改要用引用且指针不好解决。 c11之后的nullptr 以后再用空指针用nul…...
分布式应用开发的核心技术系列之——基于TCP/IP的原始消息设计
本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 本文的内容主要围绕以下几个部分: TCP/IP的简单介绍。消息的介绍。基于消息分类的传输格式&…...
医疗领域的数字化浪潮:互联网医院平台的关键作用
数字化浪潮正在迅速改变医疗领域的方式和效率。互联网医院平台作为数字化医疗的关键元素,正在为医疗行业带来巨大的变革。本文将探讨互联网医院平台的关键作用,并提供一个示例,使用Python编写一个简单的医疗预约系统。 互联网医院平台的关键…...
将本地的项目上传到Gitee
目录 1.先在Gitee新建一个仓库,提交即可 2.进入到要上传的项目里面,右键选择 Git Bash Here 3.右键后就打开了Git命令窗口 4.配置你的用户名和邮箱(已经配置过则可跳过) 5.查看你的用户名和邮箱配置(可不查看) 6.输入git init指令&#…...
概率论_概率公式中的分号(;)、逗号(,)、竖线(|)
1. 概率公式中的分号(;)、逗号(,)、竖线(|) ; 分号代表前后是两类东西,以概率P(x;θ)为例,分号前面是x样本,分号后边是模型参数。 , 逗号代表两者地位平等,代表与的关系 | 竖线代表 if,一上面为例,就是如果…...
Spark Streaming 整合 Kafka
本文代码链接:https://download.csdn.net/download/shangjg03/88442308 1.版本说明 Spark 针对 Kafka 的不同版本,提供了两套整合方案:`spark-streaming-kafka-0-8` 和 `spark-streaming-kafka-0-10`,其主要区别如下: 本文使用的 Kafka 版本为 `kafka_2.12-2.2.0`,故采用…...
【API篇】五、Flink分流合流API
文章目录 1、filter算子实现分流2、分流:使用侧输出流3、合流:union4、合流:connect5、connect案例 分流,很形象的一个词,就像一条大河,遇到岸边有分叉的,而形成了主流和测流。对于数据流也一样…...
flutter开发的一个小小小问题,内网依赖下不来
问题 由于众所周知的原因,flutter编译时,经常出现Could not get resource https://storage.googleapis.com/download.flutter.io…的问题,如下: * What went wrong: Could not determine the dependencies of task :app:lintVit…...
RabbitMQ队列及交换机的使用
目录 一、简单模型 1、首先控制台创建一个队列 2、父工程导入依赖 3、生产者配置文件 4、写测试类 5、消费者配置文件 6、消费者接收消息 二、WorkQueues模型 1、在控制台创建一个新的队列 2、生产者生产消息 3、创建两个消费者接收消息 4、能者多劳充分利用每一个消…...
分布式唯一Id,它比GUID好
分布式唯一Id,它比GUID好 一、前言 分布式唯一Id,顾名思义,是指在全世界任何一台计算机上都不会重复的唯一Id。 在单机/单服务器/单数据库的小型应用中,不需要用到这类东西。但在高并发、海量数据、大型分布式应用中,…...
计算机服务器中了勒索病毒怎么解决,勒索病毒解密流程,数据恢复
计算机服务器中了勒索病毒是一件非常令人头疼的事情,勒索病毒不仅会加密企业服务器中的数据,还会对企业计算机系统带来损害,严重地影响了企业的正常运转。最近,云天数据恢复中心工程师总结了,今年以来网络上流行的勒索…...
【NPM】vuex 数据持久化库 vuex-persistedstate
在 GitHub 上找到:vuex-persistedstate。 安装 npm install --save vuex-persistedstate使用 import { createStore } from "vuex"; import createPersistedState from "vuex-persistedstate";const store createStore({// ...plugins: [cr…...
英语——分享篇——每日200词——2601-2800
2601——resistant——[rɪzɪstənt]——adj.抵抗的——resistant——resi热死(拼音)st石头(拼音)ant蚂蚁(熟词)——热死了石头上的蚂蚁还在抵抗——The body may be less resistant if it is cold. ——天冷时,身体的抵抗力会下降。 2602——prospect——[prɒspe…...
SpringCloud-Sentinel
一、介绍 (1)提供界面配置配置服务限流、服务降级、服务熔断 (2)SentinelResource的blockHandler只处理后台配置的异常,运行时异常fallBack处理,且资源名为value时才生效,走兜底方法 二、安装…...
为什么索引要用B+树来实现呢,而不是B树
首先,常规的数据库存储引擎,一般都是采用 B 树或者 B树来实现索引的存储。 B树 因为 B 树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度会相比二叉树来说,会矮很多。 而对于数据库来说,所有…...
使用vue3前端开发的一些知识点
Vue 3 是一种流行的 JavaScript 框架,用于构建用户界面。它是 Vue.js 框架的第三个主要版本,具有许多新特性和性能改进。下面是 Vue 3 的一些常用语法和概念的详细介绍: 创建 Vue 实例: 在 Vue 3 中,你可以通过创建一个…...
告别AI幻觉陷阱!让写作避免学术不端风险
在科研产出压力与日俱增的今天,不少科研人员选择用通用AI工具辅助撰写文献综述,试图缩短调研与写作周期。但随之而来的“AI幻觉”问题,却成了悬在大家头顶的达摩克利斯之剑——虚构的文献标题、子虚乌有的作者、凭空捏造的研究结论࿰…...
SAP 清账凭证 底层完整生成逻辑(无冗余、纯原理 + 分录规则 + 边界场景)
SAP 清账凭证 底层完整生成逻辑(无冗余、纯原理 分录规则 边界场景)一、基础前置定义(决定能不能生成清账凭证)仅勾选【未清项管理】 的总账科目才可执行清账:应收账款、应付账款、GR/IR 暂估、其他往来、暂估科目等…...
图的基本遍历DFS与BFS
1. 引言 图是一种非常重要的数据结构,广泛应用于社交网络、地图导航、网页链接分析等领域。图的遍历是最基础的操作之一,主要有两种方式: 深度优先搜索 (Depth First Search, DFS) —— 沿着一条路径走到底,再回溯。广度优先搜索 …...
Dify如何通过合规配置规避AI幻觉导致的销售误导?监管处罚案例倒推的4层校验机制
第一章:Dify如何通过合规配置规避AI幻觉导致的销售误导?监管处罚案例倒推的4层校验机制在金融、保险及SaaS销售场景中,AI生成话术若未经严格约束,极易因幻觉输出虚构产品条款、夸大收益或隐瞒免责条件,引发监管处罚。2…...
基于 Redis 的分布式锁:原理剖析与 Spring Boot 实战(含看门狗续期)
一、什么是分布式锁?在单机应用中,我们常用synchronized、ReentrantLock解决多线程并发问题,但这些锁的作用域局限于单个 JVM 进程。当系统从单体架构演进为分布式集群时,多个服务实例、多个进程会并发操作共享资源(如…...
AI斗地主助手:3步快速部署的终极智能出牌方案
AI斗地主助手:3步快速部署的终极智能出牌方案 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 想要在欢乐斗地主中轻松获胜吗?基于DouZero…...
ABC软件工具箱选购与使用全攻略:从入门到精通的最佳实践
对于初次接触ABC软件工具箱的用户来说,面对120项功能可能会感到有些不知所措。 本文将为您提供一份详细的使用指南,帮助您快速了解软件的核心功能,掌握基本操作技巧,并学会如何根据实际需求选择合适的功能组合。 初次使用ABC软件…...
第三章:生活中的数据现象
上一章节我们为大家揭开了“数据分析师”的神秘面纱,文章结尾我们聊到了一个很有意思的观点:买菜虽然用不到微积分,但如果你懂一点数据逻辑,你就能立刻知道某一价格的菜到底是买贵了,还是捡了便宜。 很多人觉得&#x…...
OCR文字识别镜像实战:发票、文档、路牌等图片文字提取
OCR文字识别镜像实战:发票、文档、路牌等图片文字提取 1. 项目概述 基于CRNN模型的OCR文字识别镜像是一款专为日常办公和业务场景设计的智能文字识别工具。它能快速准确地从各类图片中提取文字内容,特别适合处理发票、文档、路牌等常见场景的识别需求。…...
手把手用GD32F307C-EVAL板调试Timer0互补PWM(含死区与刹车功能)
基于GD32F307C-EVAL实现高级定时器互补PWM全流程实战 最近在电机控制项目中尝试使用GD32F307的高级定时器功能,发现其互补PWM输出配合死区时间与刹车保护的组合应用,能显著提升系统可靠性。本文将用开发板上的TIMER0为例,演示从硬件连接到波形…...









