UIView动画上
主要参考:http://blog.csdn.net/huifeidexin_1/article/details/7597868 http://www.2cto.com/kf/201409/335661.html
如果动画不放在按钮事件中,直接放到viewDidLoad里,程序首先执行这个controller,这时动画是不会显示的,原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复了,解决方案:
1.将动画写在按钮事件中
2.利用定时器
//
// ViewController.m
// 动画
//
// Created by City--Online on 15/4/1.
// Copyright (c) 2015年 City--Online. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
{
UIButton *btn;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
btn=[UIButton buttonWithType:UIButtonTypeSystem];
btn.frame=CGRectMake(30, 30, 50, 50);
btn.backgroundColor=[UIColor redColor];
[btn setTitle:@"按钮" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
-(void)btnclick:(id)sender
{
//开启一个动画 事务型
[UIView beginAnimations:@"test" context:nil];
//设置动画延迟执行时间 单位秒
[UIView setAnimationDelay:0];
//设置动画块中的动画效果是否自动重复播放
[UIView setAnimationRepeatAutoreverses:YES];
//设置动画重复的次数
[UIView setAnimationRepeatCount:0];
//设置代理 未设置的时候下面的setAnimationDidStopSelector、setAnimationWillStartSelector不起作用
[UIView setAnimationDelegate:self];
//设置动画开始的方法
[UIView setAnimationDidStopSelector:@selector(viewstop)];
//设置动画结束时的方法
[UIView setAnimationWillStartSelector:@selector(viewstart)];
/*typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft, //左翻转
UIViewAnimationTransitionFlipFromRight,//右翻转
UIViewAnimationTransitionCurlUp, //向上折转
UIViewAnimationTransitionCurlDown, //向下折转
};*/
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
//设置动画曲线,控制动画速率 枚举类型
/*typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, // slow at beginning and end
UIViewAnimationCurveEaseIn, // slow at beginning
UIViewAnimationCurveEaseOut, // slow at end
UIViewAnimationCurveLinear
};*/
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
CGRect frame=btn.frame;
if (frame.origin.x<self.view.frame.size.width-20) {
frame.origin.x+=20;
}
else
{
frame.origin.x=0;
}
btn.frame=frame;
btn.backgroundColor=[UIColor blackColor];
//提交动画
[UIView commitAnimations];
// [UIView animateWithDuration:2 animations:^{
// btn.frame=CGRectMake(80, 30, 50, 50);
// btn.backgroundColor=[UIColor blackColor];
// }];
}
-(void)viewstop
{
NSLog(@"viewstop");
}
-(void)viewstart
{
NSLog(@"viewstart");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
注意事项:在动画中不能通过btn.frame.origin.x来改变,需要给btn.frame重新赋值
UIView动画上的更多相关文章
- 转一篇简洁的UIView动画编程方法
iOS 中的 UIView 动画编程其实还是很简单的,像 CSS3 一样,在给定的时间内完成状态连续性的变化呈现.比如背景色,Frame 大小,位移.翻转,特明度等. 以前我使用的编程方式都是用下面 ...
- UIView动画效果
做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置 ...
- 个人学习对UIView动画的总结
我的博客之前已经开通五个月了,但是一直没有写东西.一是不敢写,二是也不知道写啥.毕竟是一个刚刚入行大半年的菜鸟,现在总想通过各种办法提高自己.之前总感觉用到一些东西,只是当时搞懂了一点,加上并没有总结 ...
- UIView动画学习笔记
UIView的动画是通过修改控件的属性来达到动画的效果,如:渐变, 移动. 废话不多说,直接上代码: - (void)loadView{ [super loadView]; _leftView = [ ...
- iOS动画篇:UIView动画
iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用.在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现. UIView动画 ...
- iOS之UIview动画
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...
- iOS 动画总结—UIView动画
1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要 ...
- iOS动画1 — UIView动画
iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画 ...
- UIView动画补充
我自己的总结: // 第一种: Duration 时间 animations:动画体 /* [UIView animateWithDuration:4 animations:^{ CGRect rec ...
随机推荐
- Java学习--基本数据类型的定义和运算2
例1 public class OperateDemo01{ public static void main(String args[]){ int num = 22 ; System.out.pri ...
- 读取ViewBag匿名类
关于遍历 viewBag匿名类错误 EF tt生成的类 明明有值眼睁睁看着 却不认识 public ActionResult Index() { MyTestEntities1 db = new My ...
- openstack手动安装
安装文档: https://github.com/yongluo2013/osf-openstack-training/blob/master/installation/openstack-iceho ...
- C# 简述Action与function
Action 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托. 最初使用委托时,均需要先定义委托类型,然后定义一个符合委托类型签名的函数,在调用前,需声明并创建委托对象,将指定 ...
- 混合式应用开发之AngularJS ng-repeat数组有重复值的解决方法
使用AngularJS ng-repeat遍历数组时,遇到数组里又重复值时会报错.例如数组[1,2,3,3] 官网给了一个解决的方案 <div ng-repeat="value in ...
- Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
1.首先更新pip版本的时候出现.这是出现在python2.7.16出现的问题 2.进入你的pyhton目录下的Lib\mimetypes.py 打开它 3.在import下面加入这代码 if sys ...
- [Vue] vue-cli3.0安装
1. node.js安装https://nodejs.org/en/download/ 2.npm的安装 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了.同样可以通过输入 &qu ...
- Smart/400开发上手4: 调试Cobol代码 (DEBUG with QBATCH)
Step1:Compile Cobol source CB TIM07 using *SRCDBG option例如:CB MEMBER(TIM07) OPTION(*SRCDBG) WORKU(TI ...
- Linux下dmesg命令处理故障和收集系统信息的7种用法
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- C#:使用HtmlAgilityPack解析Html
推荐阅读: HtmlAgilityPack 入门教程1 HtmlAgilityPack入门教程2 向HtmlAgilityPack道歉:解析HTML还是你好用 获取html中meta标签中的conte ...