博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIView动画上
阅读量:6457 次
发布时间:2019-06-23

本文共 2285 字,大约阅读时间需要 7 分钟。

主要参考: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

 

注意事项:在动画中不能通过btn.frame.origin.x来改变,需要给btn.frame重新赋值

 

你可能感兴趣的文章
MYSQL导入导出.sql文件(转)
查看>>
使用Elasticsearch、Logstash、Kibana与Redis(作为缓冲区)对Nginx日志进行收集(转)
查看>>
git review报错一例
查看>>
Tomcat在Linux上的安装与配置
查看>>
《信息安全系统设计基础》 课程教学
查看>>
Linux平台下使用rman进行oracle数据库迁移
查看>>
全栈工程师学习Linux技术的忠告
查看>>
iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变...
查看>>
C# Dictionary用法总结
查看>>
SVN服务器使用(二)
查看>>
反射获取内部类以及调用内部类方法
查看>>
C语言 - pthread
查看>>
谈Linq To Sql的优劣--纯个人观点
查看>>
HDU 4996 Revenge of LIS(DP)
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
Android中的PID和UID
查看>>
MAC下上公司内网
查看>>
CentOS7.4安装mysql5.7
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>