"MindManager"学习iOS系列之"CAAnimation-核心动画"详解,让你的应用“动”起来。

"MindManager"学习iOS系列之"CAAnimation-核心动画"详解,思维导图内展示了CAAnimation-核心动画的大多数基本功能和知识,每个part都有代码讲解,展示出CAAnimation-核心动画的清晰轮廓,编者提供了"JPG"、"SWF"、"PDF"、"Word"、"Mmap"格式的源文件供给使用。注意:JPG格式仅为图片总览,SWF格式使用微软IE浏览器浏览即可,Word以全文本形式给出框架图,Mmap格式体会MindManager的魅力。To Be Continue,CAAnimation-核心动画的新知识,新想法,新思路慢慢更新,欢迎提出宝贵建议。

-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  iAronTalk Blog opens.

  The study certainly is not the life complete. But, since continually life part of - studies also is unable to conquer, what but also can make?

-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  各种类型文件的下载地址:http://pan.baidu.com/s/1pJnBtLh

  在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单。

  

  每个小知识点中都有相应的demo说明。

  -=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  后续会将集成导出的word内容展示在后面,系统自动集成,与作者原用意略有差异,使用SWF"、"PDF"、"Mmap"格式最佳。 

Core Animation CAAnimation (抽象类)

1 继承结构CAAnimation

1.1 CATransition

1.2 CAAnimationGroup

1.3 CAPropertyAnimation 抽象类

1.3.1 CABasicAnimation

1.3.2 CAKeyFrameAnimation

2  何为CAAnimation

2.1 CAAnimation性格分析

2.2 属性

参阅: 协议属性

·removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到    动画执行前的状态。

    如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为    kCAFillModeForwards

·timingFunction:速度控制函数,控制动画运行的节奏

·delegate:动画代理

·fillMode属性 (要想fillMode有效,最好设置removeOnCompletion = NO)

    ·kCAFillModeRemoved 默认值,动画开始前和动画结束后,动画对layer都没有影

         响,动画结束后,layer会恢复到动画开始前的状态

    ·kCAFillModeForwards 当动画结束后,layer会保持动画最后的显示状态

    ·kCAFillModeBackwards 在动画开始前,只需要将动画加入了一个layer, layer便

         立即进入动画的初始状态并等待动画的开始

    ·kCAFillModeBoth 上面两个的合成,动画加入后开始前,layer便处于动画初始状

         态,动画结束后layer保持动画最后的状态

·速度控制函数(CAMediaTimingFunction)

    ·kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉

    ·kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开

    ·kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到

         达目的地

    ·kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进

    入,中间加速,然后减速的到达目的地。这个是默认的动画行为。

3 CAMediaTiming(协议)

3.1 协议属性

·duration:动画的持续时间

·repeatCount:重复次数,无限循环可以设置HUGE_VALF或者MAXFLOAT

·repeatDuration:重复时间

·fillMode:决定当前对象在非active时间段的行为。比如动画开始之前或者动画结束之后

·CACurrentMediaTime()为图层的当前时间

·beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为    CACurrentMediaTime()+2。

 

 

4 Main Topic

5 进入CCAnimation的世界

5.1 CATransition

1) CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出

    屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点

2) UINavigationController就是通过CATransition实现了将控制器的视图推入屏

    幕的动画效果.

3) 动画属性:

    ·type:动画过渡类型

    ·subtype:动画过渡方向

    ·startProgress:动画起点(在整体动画的百分比)

    ·endProgress:动画终点(在整体动画的百分比)

4) type:动画过渡类型,如图:

 

5)

 

5.1.1 .h

//  ViewController.h

//  CAAnimation03

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

{

    UIView *_superView;

}

@end

 

5.1.2 .m

//  ViewController.m

//  CAAnimation03

#import "ViewController.h"

@interface ViewController ()

 

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    // 核心动画

    // 1.创建视图

    _superView = [[UIView alloc] initWithFrame:self.view.bounds];

    _superView.backgroundColor = [UIColor whiteColor];

    [self.view addSubview:_superView];

    // 01 创建视图1

    UIView *view1 = [[UIView alloc] initWithFrame:self.view.bounds];

    view1.backgroundColor = [UIColor orangeColor];

    [_superView addSubview:view1];

    // 02 创建视图2

    UIView *view2 = [[UIView alloc] initWithFrame:self.view.bounds];

    view2.backgroundColor = [UIColor redColor];

    [_superView addSubview:view2];

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

    // 1.创建动画对象

    CATransition *transition = [CATransition animation];

    transition.duration = .35;

    // 设置加速方式

    transition.timingFunction = [CAMediaTimingFunction functionWithName:@"default"];

    // 设置动画样式

  //·type:动画过渡类型

  //·subtype:动画过渡方向

    transition.type = @"cameraIrisHollowOpen";

    transition.subtype = kCATransitionFromRight;

 

    [_superView.layer addAnimation:transition forKey:@"transition"];

    // 切换视图

    [_superView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

    

}

@end

 

5.2 CABasicAnimation

5.2.1 .h

//  ViewController.h

//  CABasicAnimation04

//

//

本例使用storyboard创建,适合有点基础的学习。

 

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

{

    UIView *_subView;

    // 暂停的事件

    CFTimeInterval _timeInterval;

    // 当前暂停时刻

    CFTimeInterval _newStopTime;

    

}

- (IBAction)startAction:(id)sender;

- (IBAction)stopAction:(id)sender;

- (IBAction)remveAction:(id)sender;

@end

 

5.2.2 .m

//  ViewController.m

//  CABasicAnimation04

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    _subView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

    _subView.backgroundColor = [UIColor redColor];

    [self.view addSubview:_subView];

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    // 使用CABasicAnimation设置动画

CABasicAnimation*basic=[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

    // 设置开始位置

    basic.fromValue = @(0);

    basic.toValue = @(M_PI * 2);

    // 设置动画执行完成的一个状态

    basic.fillMode = kCAFillModeForwards;

    basic.removedOnCompletion = NO;

    // 配置动画事件

    basic.duration = 2;

    basic.repeatCount = 100;

    // 还原的时候也有动画效果

    basic.autoreverses = NO;

    [_subView.layer addAnimation:basic forKey:@"basicKey"];

}

- (IBAction)startAction:(id)sender {

    // 恢复动画

    // 1.恢复速度

    _subView.layer.speed = 1.0;

    // 2.设置延迟实行事件

    _timeInterval += CACurrentMediaTime() - _newStopTime;

    _subView.layer.beginTime  = _timeInterval;

    NSLog(@"%f",_subView.layer.timeOffset);

    // 3.取消之前的位置设置

    _subView.layer.timeOffset = 0;

}

 

- (IBAction)stopAction:(id)sender {

    // 设置layer的移动速度为0,相当于停止了

    _subView.layer.speed = 0.0;            

    // 设置layer位置,是相对于时间的位置

    _newStopTime = CACurrentMediaTime();

    _subView.layer.timeOffset = _newStopTime;

}

- (IBAction)remveAction:(id)sender {

    [_subView.layer removeAnimationForKey:@"basicKey"];

}

@end

 

5.3 CAKeyFrameAnimation

5.4 CAAnimationGroup

   未完待续。

  -=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  由于编者水平有限,不妥之处在所难免,恳请各个大牛批评指正,提出宝贵建议。

  版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/iAronTalk/p/4777483.html

heygem本地部署报错:SQLite3 can only bind numbers, strings, bigints, buffers, and null...如何解决? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位大厂资深架构师和一线开发多年实战经验沉淀, 阅读详情

相关推荐

SpringCloud 2025王炸更新!GraalVM原生镜像启动速度提升90%实战

在当今云原生和Serverless架构盛行的时代,应用的启动速度已成为衡量技术栈竞争力的关键指标。传统SpringCloud应用由于依赖JVM的动态类加载、反射等机制,启动时间通常超过30秒,在Kubernetes滚动更新和函数计算场景下成为显著性能瓶颈。2025年,SpringCloud迎来里程碑式更新,通过深度集成GraalVM原生镜像技术,实现了启动速度提升90%的惊人突破,让SpringCloud应用正式进入"秒级启动"时代。

小筱在线博客 1098

2026 Windows视频播放器推荐 无广告支持4K HDR

2026年Windows平台的视频播放器可按需求选择:普通本地播放选VLC,影音发烧友调参选PotPlayer,有网盘资源整合需求选网易爆米花,均支持无广告的4K HDR视频播放体验。不同播放器的定位差异明显,没有绝对的优劣,按需选择即可:如果只需要播本地视频选VLC/PotPlayer,爱折腾媒体库选Kodi/Plex,有网盘观影需求选网易爆米花即可。A: 优先选择VLC或MPC-HC,二者资源占用极低,内置硬件解码支持,即使是配置较老的电脑也能流畅播放绝大多数常见格式的本地视频。

2601_96682745的博客 227

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

鸿蒙操作系统实现应用接续跨设备流转实战

应用接续的落地成本很低:一个配置、一个onContinue回调、一处 launchReason 判断,合计不足百行代码,就能让任务在手机、平板、鸿蒙电脑之间无缝续接。随着互助通信共享等组网能力在更多机型下放,这条能力的实用价值会持续放大,建议交互密集型应用尽早接入。

NJPJI_Yang的博客 347

为什么你的Mac蓝牙总断连?深入解析硬件干扰与系统设置避坑

本文深入解析Mac蓝牙频繁断连的原因,包括硬件干扰(如WiFi同频干扰、USB设备电磁干扰)和系统设置问题,并提供详细的优化方案和诊断工具(如blueutil)使用指南,帮助用户有效解决蓝牙稳定性问题。

ik67890123的博客 679

手把手调试AD9653的LVDS数据采集:从VIO抓波形到用F0/F8帧对齐的实战心得

本文详细介绍了AD9653高速ADC与Xilinx 7系列FPGA(如7z035)的LVDS数据采集调试实战经验。从硬件环境搭建、Vivado工具链配置到LVDS数据对齐技巧,重点分享了利用VIO抓取波形和使用F0/F8帧对齐的实用方法,帮助工程师快速解决高速数据采集系统中的信号完整性问题。

weixin_29169899的博客 701

Claude Code 从入门到实战(一):安装、登录与第一个Vue项目

Claude Code 系列实战第 1 篇:先认识 Claude Code 的工作方式与任务循环,完成 npm 安装、登录与授权,通过让 Claude 理解一个 Vue 项目完成第一次实战任务,并辨析默认、自动接受编辑、Plan 规划等权限模式的差异与选择策略。

weixin_45284808的博客 203

CFturbo 2024保姆级教程:从流量扬程到三维叶轮,手把手搞定离心泵水力设计

本文提供CFturbo 2024离心泵水力设计的全流程实战指南,从流量扬程参数输入到三维叶轮模型导出,详细解析设计步骤与优化技巧。涵盖叶轮尺寸确定、子午面型线设计、叶片角度调整等关键环节,帮助工程师高效完成CAE辅助的离心泵水力设计,提升设计质量与效率。

weixin_42569329的博客 921

【Linux】APT 本地 deb 安装与 `-f` 参数总结笔记

apt install ./xx.deb 可自动解析并安装依赖,无需 -f;-f 仅用于修复已损坏的依赖状态,非首次安装时必需。apt install -f 可单独运行,修复 broken dependencies。两者职责不同:前者是安装与依赖解决,后者是故障修复。完全离线时需提前准备依赖包或本地源。

hknaruto的专栏 209

4D 毫米波雷达:智驾普及的新路径(一)

总体而言,4D 毫米波雷达具有更佳的探测能力,更高的分辨率和精度,在人工智能技术的加持下,能够实现更加智能化的感知和跟踪,从而为自动驾驶、智能交通等领域提供更加可靠的数据支持。博世的第五代引入了俯仰维度,但其角度分辨率较差,且最大探测距离为。车载毫米波雷达的尺寸受限,我们认为通过算法的优化、天线内置等方式可以在保障性能的前提下,压缩尺寸,便于车企进行灵活的设计安装。在物理设计、天线性能设计、电连接、封装工艺和材料、散热处理、可靠性与自动化测试等方面进行持续优化,推出可大规模量产的高性能毫米波雷达解决方案。

奔袭的算法工程师 3953

SpringBoot整合JWT实战:从零构建无状态认证系统,详解Token生成、验证与安全最佳实践

JWT在SpringBoot中的实现与应用 摘要:本文介绍了JWT(JSON Web Token)的基本概念、与Session机制的对比,以及SpringBoot项目中JWT的整合实现。JWT由Header、Payload和Signature三部分组成,具有无状态、跨域支持等优势。文章详细展示了如何在SpringBoot项目中配置JWT环境,封装JWT工具类来实现Token的生成、解析和验证功能,包括密钥管理、自定义声明、签名验证等核心操作。通过对比表格和生活化比喻,帮助读者理解JWT与传统Session的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1772

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 411

基于YOLOv8的城市违建识别系统:从数据集构建到UI界面实现

YOLOv8是Ultralytics公司于2023年推出的最新一代YOLO(You Only Look Once)系列目标检测算法。更高效的骨干网络设计改进的锚框机制更精确的损失函数支持分类、检测、分割等多任务YOLOv8特别适合像违建识别这样的实时检测任务,能够在保持高精度的同时实现快速推理。

YOLO 674

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 205

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux sudo

如果输出 → 无 sudo 权限 如果输出 → 拥有全部 sudo 权限 辅助验证命令 ⚠️ 注意:在 wheel 组 ≠ 一定能 sudo,必须 开启 Ubuntu/Debian: ✅ 重要:修改组之后,用户要重新登录才生效! 或者执行 临时生效 看到这行(没有 #注释)才生效: 方式 2:visudo 直接单独给用户授权(精细化权限) 找到 ,下面添加一行: 自带语法校验,写错会告警,不要直接 vim 改 ,写错直接 sudo 炸掉! 想免密 su

fengliyang_的博客 176

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【HarmonyOS 7 语音 AI 开放能力深度实战】 05 文本转语音实战,文字播报与合成状态控制

会议笔记已经整理成文字,用户离开屏幕以后,可能仍然希望听一遍已经确认的事项。应用可以提供一个播报按钮,把当前内容交给语音合成服务。但是,按钮点击成功与整段内容播放结束之间,还隔着引擎初始化、音色选择、合成和音频输出。页面如果在第一个完成回调出现时就恢复空闲,用户可能再次启动播报,让新的内容与尚未结束的声音互相影响。文本转语音服务负责把文字转换为声音,应用仍然需要选择音色、提交请求并管理页面状态。对于直接播报,合成引擎可以负责播放,页面不必另建播放器;但页面仍需要根据播放事件判断什么时候可以开始下一次操作。

Code Metaverse 174

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ARM64-GNU汇编器

o伪指令分配大小例子伪指令分配大小例子.byte1 字节.byte 0x412 字节.word / .long 4 字节8 字节.ascii字符串(不加 \0)字符串(自动加 \0).byte:把 8位数当成数据插入汇编代码中。.hword和 .short:把16 位数当成数据插入汇编代码中。.long和 .int:这两个伪指令的作用相同,都把 32位数当成数据插入汇编代码中。.word:把 32位数当成数据插入汇编代码中。

weixin_43903002的博客 176

Windows syslog日志服务器搭建与模拟器对接

二 HCL 华三模拟器连接HOST直接让路由器接口UP。1.下载visualsyslog 日志服务器软件。4.7 日志服务器可以看到年份为2026年。2.2 华三路由器配置并执行日志服务器。2.4 华三路由器可以与日志服务器互通。3.2 日志服务器可以实时查看日志。3.4 日志服务器可以实时看到日志。4.6 路由器配置日志显示年份。五 日志服务器查看日志存放位置。4.5 日志服务器查看到日志。2.3 华三路由器接口UP。4.3 日志服务器清掉日志。路由器本地日志显示年份成功。4.在桌面生成快捷方式。

huainingning的博客 245

Linux基本使用和程序部署

Linux是一个操作系统,和Windows是并列的关系。

LYYstudying的博客 61

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 264

AI Agent 的安全风险,正在从 Prompt 扩展到运行环境

从 Cursor 恶意扩展事件看 AI Agent 运行环境的安全风险与权限边界。

2501_92842654的博客 468

闲置Windows主机搭建私有网盘:轻量局域网文件服务方案实测

本文介绍基于闲置Windows主机搭建轻量级私有文件服务的实用方案,针对个人开发者、小团队及实验室用户痛点,提出以Web形态文件系统替代公有网盘或复杂NAS的低成本解决方案。该方案无需额外硬件,部署简单,支持多设备浏览器访问、权限隔离、临时分享链接与原文件预览,适合局域网内素材归档、协作共享与安全分发。但需注意其局限性:依赖主机常开、无磁盘冗余、外网访问需谨慎配置,且不适用于高并发或核心业务存储。建议结合备份机制与安全策略使用,合理权衡成本与可靠性。

zxcvb153的博客 229

Windows 10/11 彻底禁用更新防止反弹完全指南:设置、服务、任务计划与批处理实战

Windows 10已于2025年10月14日终止支持,本文以22H2版本为例,系统性介绍通过设置、组策略、注册表、服务禁用及任务计划管理等多层手段彻底关闭自动更新。操作需管理员权限,可有效避免强制重启、节省资源并阻止Win11推送,但需手动处理安全补丁。文末提供完整批处理脚本与调试检查方法,实现一键禁用与验证。

seahahacsdn的博客 210

Linux网络编程:TCP多线程远程命令执行与线程池改造

前面已经实现了 TCP Echo Server,并且通过多进程和多线程解决了多个客户端连接的问题。不过目前服务器的业务还是比较简单,客户端发送什么,服务器就返回什么。这次在原来的多线程服务器上继续做一些改动,实现一个简单的远程命令执行功能。这次主要学习了两个内容。第一个是多线程远程命令执行。通过 Command 类封装命令的接收、检查、执行和结果返回,并使用 set 对允许执行的命令进行限制。第二个是线程池版本的 TCP Echo Server。通过和std::bind。

2501_93388101的博客 351

Linux的渲染与显示系统链路

Linux渲染与显示链路核心为DRM/KMS + EGL直连模式,绕过传统X11/Wayland中间层,实现低延迟、高效率的直接帧提交。相比X11的粗粒度权限控制与Wayland的合成开销,该方案链路短、资源消耗低,但仅支持单进程独占显示,缺乏窗口管理与系统级兜底。EGL作为跨平台桥梁,连接OpenGL ES与原生显示系统,通过Display、Surface、Context三要素构建渲染环境。内核层DRM管理GPU资源,KMS配置显示模式,用户态GDM负责登录会话,共同构成从硬件到应用的完整图形栈。

微小的鱼的博客 203

windows服务主进程已停止工作怎么解决?我把服务控制器的报错码和启动链路拆开跑了一遍

windows服务主进程已停止工作怎么解决,先把 SCM 的报错码读明白:服务起不来,先抓报错码再动手——1060名字错、1058被禁用、1056已运行、1053超时、1067起来又死、1069账户、1075依赖、25路径权限。读配置用sc qc、看状态用sc query、列服务用,这三件套能定位大部分启动失败。把服务放到云上,阿里云 ECS、腾讯云 CVM、华为云 ECS 都给你一台能用sc管理的机器,排障逻辑不变。我在这台 Windows 10 上把106010581056和sc qc。

2601_97101189的博客 263
上一篇: "MindManager"学习iOS系列之"UITableView-表视图"-最详尽-最清晰
下一篇: 另类的视角看“UIView”和“CALayer”——灵之于魄,男人之于肾的关系
baichen7046
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值