iOS程序猿之iOS动画基础

iOS开发 ----- UIViewController转场动画 UIViewController的转场动画1. 自从开始看UI,就一直有个问题,就是类似微信的那个页面切换的效果怎么实现,也就是这个效果想过ScrollerView,但这样的话,会增大VC之间的耦合度,导致管理起来很混乱,在加上tableView的话,分分钟不想写的节奏啊,于是乎开始爬各种博客,终于,找到了目前认为最完美的解决方案,这样写的话,可以完美的实现这样的效果,且VC之间的耦合度时最低的 D 阅读详情
iOS 中的动画是指一些视图上的过渡效果,合理利用动画能提高用户体验!

第一类: UIView 动画

UIView动画影响的属性有:
  • frame: 视图框架
  • center: 视图的位置
  • alpha: 视图的透明度
  • bounds: 视图的大小
  • transform: 视图的装换
  • backgroundColor: 背景色
UIView动画块的用法:(特点:全是类方法调用,结构上类似与自动释放池,开始与结束之间的部分是动画改变的部分)
UIView动画的几种设置方法:
  • 动画的开始
    // 参数1:标识符(名字)
    // 参数2:携带的参数
    [UIView beginAnimations:@"UIView" context:nil];
  • 动画持续时间:
    // 设置时间, 在多少秒钟完结动画
    [UIView setAnimationDuration:3];
  • 动画开始前延时:
    // 设置动画延迟, 延迟多少秒开始
    [UIView setAnimationDelay:0];
  • 动画的速度曲线
    // 设置速度曲线
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]
  • 动画的反转
    // 设置反转
    [UIView setAnimationRepeatAutoreverses:YES];
  • 动画的循环次数
    // 设置循环执行
    [UIView setAnimationRepeatCount:1];
  • 设置动画的代理
    // 设置代理
    [UIView setAnimationDelegate:self];
  • 动画开始的代理方法
    [UIView setAnimationWillStartSelector:@selector(willStart)];
  • 动画结束的代理方法
    [UIView setAnimationWillStartSelector:@selector(willStart)];
  • 动画从当前状态继续执行
    // 设置持续执行动画
    [UIView setAnimationBeginsFromCurrentState:YES];
  • 动画提交
    // 3.动画提交
    [UIView commitAnimations];
UIView 动画的两种 block方法:
  • 普通的 block 方法
    [UIView animateWithDuration:1 animations:^{
        // 执行的动画
        _imageView.center = CGPointMake(200, 400);
    }];
  • 较常用的 block 方法(该 block 写动画结束后改做的事)
    // 参数3:该 block 写动画结束后改做的事
    [UIView animateWithDuration:1 animations:^{
        // 如果设置了反转属性,那么在动画结束后不用在另行添加动画效果了
        [UIView setAnimationRepeatAutoreverses:YES];
        // 这里写执行的动画
        
    } completion:^(BOOL finished) {
        // 上面动画结束触发(相当于 代理方法中的完成动画的方法)
        // 还可以继续添加其他的动画
        [UIView animateWithDuration:1 animations:^{
        } completion:^(BOOL finished) {

        }];

    }]; 

几种CGAffineTransform2D仿射变换

  • 平移
#pragma mark - 平移(2D仿射变换方法)
     
    // 参数3:该 block 写动画结束后改做的事
    [UIView animateWithDuration:1 animations:^{
        // 如果设置了反转属性,那么在动画结束后不用在另行添加动画效果了
        [UIView setAnimationRepeatAutoreverses:YES];
        // 执行的动画
        
        // 平移(2D仿射变换方法)
        // transform 形变属性
        // 参数1:填要形变的 View
        self.imageView.transform = CGAffineTransformTranslate(self.imageView.transform, 100, 0);
        
    } completion:^(BOOL finished) {
        // 上面动画结束触发(相当于 代理方法中的完成动画的方法)
        // 复原位置
        self.imageView.transform = CGAffineTransformTranslate(self.imageView.transform, -100, 0);

        
    }];

  • 缩放
#pragma mark - 缩放(2D仿射变换方法)

    [UIView animateWithDuration:1 animations:^{
        
        // 反转
        [UIView setAnimationRepeatAutoreverses:YES];
        
        // 缩放(2D仿射变换方法)
        // 参数2/3 是缩放的比例
        self.imageView.transform = CGAffineTransformScale(self.imageView.transform, 2, 2);
        
    } completion:^(BOOL finished) {
        self.imageView.transform = _transform;
    }];
  • 旋转
#pragma mark - 旋转(2D仿射变换方法)
    
    // 需求:
    // 点击按钮,开始旋转,再点停止转动
    
    [UIView animateWithDuration:0.1 animations:^{
        // 旋转
        // 参数二:旋转角度
        self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, M_PI_2);
    } completion:^(BOOL finished) {
        // 结束时调用旋转方法
        [self rotateAnimation];
    }];
    
  
    _isRuning = !_isRuning;
}

// 循环转
- (void)rotateAnimation
{
    if (_isRuning == YES) {
        [UIView animateWithDuration:0.1 animations:^{
            // 旋转
            // 参数二:旋转角度
            self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, M_PI_2);
            // 给旋转的初值
            self.isRuning = YES;
        } completion:^(BOOL finished) {
            // 结束时调用旋转方法
            [self rotateAnimation];
        }];
    }
}

实现两个视图控制器的界面动画跳转

需要创建一个控制器,把要实现跳转的两个控制器的 self.view 添加到这个控制器上

#import "RootViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"

@interface RootViewController ()

// 声明两个控制器
@property (nonatomic, retain) SecondViewController *secondVC;
@property (nonatomic, retain) ThirdViewController *thirdVC;
// 声明一个状态标识,标识显示哪个 View
@property (nonatomic, assign) BOOL isShowSecondVC;

@end

@implementation RootViewController

- (void)dealloc
{
    [_secondVC release];
    [_thirdVC release];
    [super dealloc];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor yellowColor];
    
    [self addChildViews];
    [self addButtonItem];
}

// 添加控制器并显示视图
- (void)addChildViews
{
    // 创建 thirdVC
    self.thirdVC = [[ThirdViewController alloc] init];
    // 把该控制器添加到 rootVC的子控制器
    <span style="color:#FF0000;">[self addChildViewController:self.thirdVC];</span>
    // 把 secondVC.view 显示出来
    <span style="color:#FF0000;">[self.view addSubview:self.thirdVC.view];</span>
    [_thirdVC release];
    
    // 创建控制器
    self.secondVC = [[SecondViewController alloc] init];
    // 把该控制器添加到 rootVC的子控制器
    <span style="color:#FF0000;">[self addChildViewController:self.secondVC];</span>
    // 把 secondVC.view 显示出来
    <span style="color:#FF0000;">[self.view addSubview:self.secondVC.view];</span>
    [_secondVC release];
    
    // 给标识一个初值
    self.isShowSecondVC = YES;
}

// 添加按钮
- (void)addButtonItem
{
    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"跳转" style:UIBarButtonItemStylePlain target:self action:@selector(actionButton:)];
    self.navigationItem.leftBarButtonItem = button;
    [button release];
}

// 实现视图切换
- (void)actionButton:(UIBarButtonItem *)button
{
    if (_isShowSecondVC == YES) {
        
        <span style="color:#FF0000;">[UIView transitionFromView:self.secondVC.view toView:self.thirdVC.view duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
        }];</span>
    } else {
        // 切换过来
        // UIView 切换动画
        <span style="color:#FF0000;">[UIView transitionFromView:self.thirdVC.view toView:self.secondVC.view duration:1 options:UIViewAnimationOptionTransitionFlipFromRight completion:^(BOOL finished) {
        }];</span>
    }
    
    // 更改标识符状态
    _isShowSecondVC = !_isShowSecondVC;
    
}

CALayer 的基本属性

// 创建视图
- (void)addSubViews
{
    self.myView = [[UIView alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
    self.myView.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:self.myView];
    [_myView release];
    
    
    // layer 是负责显示图层的
    // 要更改看到的形状,需要更改 layer
    
    // 设置圆角
    // 变圆的先决条件必须是长宽相同
    self.myView.layer.cornerRadius = self.myView.frame.size.width / 2;
    // 设置阴影的颜色
    // CGColorRef 是涂层绘制的颜色
    self.myView.layer.shadowColor = [UIColor yellowColor].CGColor;
    // 设置阴影的显示范围
    self.myView.layer.shadowOffset = CGSizeMake(10, 10);
    // 阴影透明度
    self.myView.layer.shadowOpacity = 1;
    // 模糊程度
    self.myView.layer.shadowRadius = 50;
    // 设置边框
    self.myView.layer.borderWidth = 5;
    // 设置边框的颜色
    self.myView.layer.borderColor = [UIColor redColor].CGColor;

layer 层动画

CAPropertyAnimation 是一个抽象类
CABasicAnimation 基础动画, 能实现类似:更改大小,旋转等动画
CAKeyframeAnimation 主要能实现类似按轨迹移动, 位置, 执行一组动画(背景颜色)

几种常用的 layer 层动画

  • 旋转
// 旋转
- (void)xyAnimation
{
    // 创建一个基础动画
    // 注意: KeyPath 一定不要拼错
    // 要更改的是 transform.rotation.x
    // 形变属性下 弧度的点 X 轴
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
    // 设置属性变化 到什么值
    // toValue 需要一个对象类型,即 NSNumber 或 NSValue
    animation.toValue = [NSNumber numberWithFloat:M_PI];
    // 设置动画时间
    animation.duration = 1;
    // 设置动画重复
    animation.repeatCount = 2;
    
    // 把设置好的动画添加到 layer上
    // 参数2:添加的动画标识
    [self.myView.layer addAnimation:animation forKey:@"transform.rotation.x"];
    
}
  • 改变 size
// 改变 size
- (void)sizeAnimation
{
    // 更改大小的话,需要更改 bounds.size
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
    // 设置改变的值
    // fromValue 初始值
    animation.fromValue = [NSValue valueWithCGSize:CGSizeMake(10, 10)];
    // toValue 结束值
    animation.toValue = [NSValue valueWithCGSize:CGSizeMake(100, 100)];
    // 设置时间
    animation.duration = 1;
    // 添加到 layer 上
    [self.myView.layer addAnimation:animation forKey:@"bounds.size"];
}
  • 改变颜色
// 改变颜色
- (void)changeBackGroundColor
{
    // 可以执行一组动画
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    
    // 创建绘制颜色
    CGColorRef color1 = [UIColor orangeColor].CGColor;
    CGColorRef color2 = [UIColor lightGrayColor].CGColor;
    CGColorRef color3 = [UIColor greenColor].CGColor;
    CGColorRef color4 = [UIColor blueColor].CGColor;

    // 改变一组颜色
    animation.values = @[(id)color1, (id)color2, (id)color3, (id)color4];
    
    // 设置时间
    animation.duration = 2;
    // 添加到 layer 上
    [self.myView.layer addAnimation:animation forKey:@"backgroundColor"];
    
}
  • 轨迹移动
// 轨迹移动
- (void)positionPoint
{
//    NSLog(@"%@", NSStringFromCGPoint(self.myView.layer.position));
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    // 创建一堆点
    NSValue *point1 = [NSValue valueWithCGPoint:CGPointMake(100, 200)];
    NSValue *point2 = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
    NSValue *point3 = [NSValue valueWithCGPoint:CGPointMake(100, 300)];
    NSValue *point4 = [NSValue valueWithCGPoint:CGPointMake(200, 300)];
    NSValue *point5 = [NSValue valueWithCGPoint:CGPointMake(100, 400)];

    // 添加点进数组
    animation.values = @[point1, point2, point3, point4, point5];
    
    // 设置时间
    animation.duration = 1;
    // 添加到 layer上
    [self.myView.layer addAnimation:animation forKey:@"position"];
}
  • 左右晃动
// 左右晃动
- (void)positionX
{
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
    
    CGFloat center = self.myView.layer.position.x;
    CGFloat left = center - 100;
    CGFloat right = center + 100;
    
    NSNumber *r = [NSNumber numberWithFloat:right];
    NSNumber *c = [NSNumber numberWithFloat:center];
    NSNumber *l = [NSNumber numberWithFloat:left];
    animation.values = @[r, c, l, c];
    // 设置时间
    animation.duration = 0.5;
    // 设置重复次数
    animation.repeatCount = 1000;
    // 添加到 layer上
    [self.myView.layer addAnimation:animation forKey:@"position.x"];
}
  • 3D 旋转
#pragma mark - 3D旋转
- (void)transform3D
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    
    // 结束值
    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(self.myView.layer.transform, M_PI, 10, 20, 20)];
    
    animation.duration = 1;
    
    [self.myView.layer addAnimation:animation forKey:@"transform"];
}
  • 组动画
#pragma mark - 组动画
- (void)groupAnimation
{
    // 创建组动画
    CAAnimationGroup *group = [CAAnimationGroup animation];
    
//////////////////////////////////////改变颜色/////////////////////////////////////////
    // 改变颜色
    // 可以执行一组动画
    CAKeyframeAnimation *animation1 = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    // 创建绘制颜色
    CGColorRef color1 = [UIColor orangeColor].CGColor;
    CGColorRef color2 = [UIColor lightGrayColor].CGColor;
    CGColorRef color3 = [UIColor greenColor].CGColor;
    CGColorRef color4 = [UIColor blueColor].CGColor;
    // 改变一组颜色
    animation1.values = @[(id)color1, (id)color2, (id)color3, (id)color4];
    
    
    
    
//////////////////////////////////////改变大小/////////////////////////////////////////
    
    
    // 更改大小的话,需要更改 bounds.size
    CABasicAnimation *animation2 = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
    // 设置改变的值
    // fromValue 初始值
    animation2.fromValue = [NSValue valueWithCGSize:CGSizeMake(10, 10)];
    // toValue 结束值
    animation2.toValue = [NSValue valueWithCGSize:CGSizeMake(100, 100)];
    
    // 设置组动画时间
    group.duration = 3;
    // 设置组动画执行的动画数组
    group.animations = @[animation1, animation2];
    // 添加到 layer 上
    [self.myView.layer addAnimation:group forKey:@"group"];
    
}





iOS的几种动画 都是用animation写的几种动画效果,比如淡入淡出,延时滑动,点击颤抖等,所有动画写在一个登陆页面上.简单,实用 立即下载

相关推荐

IOS 基本动画(旋转、移动、闪烁、缩放等)

IOS 基本动画(旋转、移动、闪烁、缩放等)

iOS开发详解之几种基础动画篇

iOS 中的动画是指一些视图上的过渡效果,合理利用动画能提高用户体验! 第一类: UIView 动画 几种CGAffineTransform2D仿射变换 实现两个视图控制器的界面动画跳转 CALayer 的基本属性 layer 层动画 CAPropertyAnimation 是一个抽象类 CABasicAnimation 基础动画, 能实现类似:更改大小,旋转等动画 CAKeyframeAnimation 主要能实现类似按轨迹移动, 位置, 执行一组动画(背景颜色)

w_qiang75的博客 726

2021-08-20

通过QQ号获取绑定的手机号 导语 偶有奇想,我们可以通过手机号来搜索获取其对应的QQ号,那么,反过来呢? 一.缩小范围 由于手机号属于隐私数据,腾讯QQ并没有直接给出通过QQ号查找对应手机号的接口。 国内的手机号有十一位数字,从数学的角度上来说,包含了1011种可能。如果遍历这1011个数据,通过QQ中手机号查找QQ号的接口来寻找,未免太过费时费力,根据网上查到的资料,同一个QQ号,在十分钟内只能进行30次查询(未验证)。因此,直接遍历的方法不现实。 在这10^13个数据中,包含着大量的可去除的无用数据。我

m0_56063822的博客 4722

iOS开发(OC)——常用动画

iOS开发交流群:301058503 1、 旋转的加载动画,效果图如下 代码实现 /*慢慢消失的动画*/ CABasicAnimation *animation1 = [CABasicAnimation animationWithKeyPath:@"opacity"]; //动画完成后保持原状 animation1.fillMode = kCAFillMode...

菜鸟历程 4130

ViViT视频分类实战:从Tubelet Embedding到4种Attention变体的保姆级解析

本文深入解析ViViT(Video Vision Transformer)在视频分类中的实战应用,重点介绍Tubelet Embedding技术和4种Attention变体的实现细节。通过对比分析Spatio-Temporal、Factorised Encoder等不同Attention机制的性能特点,提供工程优化策略和Kinetics数据集上的实战示例,帮助开发者掌握这一前沿视频理解技术。

weixin_29292535的博客 386

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388

Animation

一、iOS动画 iOS中实现一个动画十分简单,在view层面上通过调用 [UIView animateWithDuration:duration animations:^{ //执行动画 }] 但是它不能控制动画的暂停和组合,所以就需要用到CoreAnimation了。 iOS中的动画主要分为:基础动画(CABasicAnimation)、关键帧动画(CA

张梦磊 2058

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

iOS的三种动画

iOS有三种动画.1.头尾式动画(不重要)基本上这些动画都是调用的UIView的方法.[UIView beginAnimations:nil context:nil];//准备开始动画[UIView setAnimationDuration:5];//设置时间[UIView commitAnimations];//提交动画(真正开始做动画)alpha = 0; // 透明度 取值范围 0 - 1(...

MeteoriteMan的博客 546

数仓建模—数据语义层

如今,企业产生大量数据,需要以正确的方式进行分析才能做出重要决策。数据可能来自多个来源并采用不同的格式,这使得清楚地了解其含义和重要性成为一项挑战。这就是语义层的用武之地。语义层存在于数据仓库和最终用户使用的应用程序之间。它为用户提供了简化且一致的数据视图,无论其基础数据源的复杂性如何。该逻辑层有助于映射物理数据结构以创建概念数据模型。它定义了数据元素之间的所有规则和关系,并以业务术语提供了数据的通用词汇表。然后,用户可以轻松地与数据进行交互,而无需了解其数据源的技术知识。

7万+

28-手把手教你手写CPU-Verilog - 乘法器设计:Booth算法与Wallace树乘法器

文章摘要: 本文详细介绍了两种高效乘法器设计方法:Booth算法和Wallace树乘法器。Booth算法通过检测乘数连续1/0减少部分积,适合有符号数运算;Wallace树采用树形结构压缩部分积,显著降低延迟。文章包含算法原理、具体示例、Verilog实现代码(4位乘法器)及性能对比表,指出Booth适用于通用处理器,Wallace树更适合高性能DSP/GPU。最后强调实际设计中需根据速度、面积和功耗需求选择合适方案。

2301_79143213的博客 206

【动画消消乐 】仿ios、android中常见的一个loading动画 074

前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!   【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实

海到无边天作岸 山登绝顶我为峰 3751

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南

ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 298

iOS程序猿之iOS绘图基础(draw)

iOS绘图基础(draw) 先说几个基本概念: context:上下文,ios绘图的方法都需要传一个上下文context,这个context在重写uiview的drawRect的方法里调用UIGraphicsGetCurrentContext()获取 path:路径,ios绘图可以想象为你拿着一支笔去画图,画几条线或几个点从而形成一个路径,之后可以利用理解去填色或者描边 stroke,

iOS_wq的博客 1565

华为OD机试真题 新系统 - 勇攀数字高峰 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2095

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

iOS程序猿之CAShapeLayer类(动画)

CAShapeLayer 指定形状路径 @property CGPathRef path; // 动画路径,默认为NULL /** * 不像大多数动画的性能,path(与所有CGPathRef动画属性)不支持隐动画。 * 路径对象可以使用任何的具体子类的动画CAPropertyAnimation * 如果此属性的值是不为NULL,则path使用指定的路径,而不是创建该层的合成后

iOS_wq的博客 894

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

程序猿从入门到放弃

成为一名程序猿的方法是多样的,路途是坎坷的,方向是繁多的,前途是光明的。哇咔咔,我竟然会排比,看来写一篇高中作文能拿个高分。

槑头脑的博客 6428

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

程序猿媳妇儿注意事项

[转载]http://www.admin10000.com/document/4861.html     一年前我和程序猿第一次见面,还是大一军训期间。我甚至不确定程序猿是否记得那是第一次见面。当时不小心装伪文艺参加了吉他社,想借一本吉他入门书,然后同在吉他社热心的海哥说他一同学有,就带着我去拿书了。于是我们第一次“见面”了,我只看见一个对着电脑,佝偻着背的背影......严重怀疑程序...

awp7451的博客 546

做程序猿的老婆应该注意的一些事情

来源:https://www.jianshu.com/p/fa00d09908ff今天来说说一位女青年的老公以及他们的事儿。如有雷同,纯属巧合。十一年前我和程序猿第一次见...

哲洛不闹的专栏 213

iOS APP体验设计 :程序猿 vs 设计湿

iOS APP体验设计不像互联网的体验设计那样,有一堆的方法论和可以“借鉴”的案例。 目前除了苹果的和前Palm的外,没有找到更好的设计哲学和方法论。        事实上,即便认真地研读了HIG和Zen of Palm,甚至是Oolon Colluphid的哲学巨作你也无法严格按照Guideline设计出一款出色的APP。其原因,我得从程序猿和设计湿说起。        程序猿 vs

精彩人生 586

iOS程序猿之毛玻璃效果

毛玻璃效果 在iOS开发中有时会遇到给视图或图片设置模糊,来提升用户体验,iOS7之后半透明模糊效果得到大范围的应用,下面整理几种毛玻璃效果的代码 1.UIToolbar 苹果在iOS7.0之后,很多系统界面都使用了毛玻璃效果,增加了界面的美观性,比如通知中心界面;其实在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类 iOS7.0 毛玻璃

iOS_wq的博客 1198

最值得程序猿学习的几个iOS 开源项目

相信从事软件开发的童鞋应该都有这样的感触,不管怎么学,知识总是学不完的,而且入门一门技术不难,要深入学习一门技术才是真的难。          任何计算机技术,如果不努力学习、进步,就会感觉自己停步不前,没成就赶不说,还会对自己的自信心也是一个严重的打击。对于从事iOS应用开发的童鞋来说呢,入门后到进阶是一个阶段、进阶到高级开发是一个阶段、高级开发到精通又是一个阶段,那每个阶段我们应

qwemaizi的博客 1383

iOS程序猿的flutter学习之路

日常学习Flutter开发的积累 推荐一些平时自己学习Flutter开发当中接触到的优秀文章 -------------------------基础知识 ------------------------- 基础知识 学习内容 网址 系列 Flutter中文网 官方学习网址,入门学习 点击前往 flutter环境搭建mac版 1.系统环境要求 2.下载flutter ...

Alvenhao的博客 1465
上一篇: iOS程序猿之keyChain保存登录名和密码
下一篇: iOS程序猿之linux的cp/scp命令+scp命令详解
iOS_wq
博客等级 码龄11年 10粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值