ios开发基础知识 - 2
移动物体
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
theAnimation.duration=1;
theAnimation.repeatCount=2;
theAnimation.autoreverses=YES;
theAnimation.fromValue=[NSNumber numberWithFloat:0];
theAnimation.toValue=[NSNumber numberWithFloat:-60];
[view.layer addAnimation:theAnimation forKey:@"animateLayer"];
参考:
Field Key Path |
Description |
---|---|
rotation.x |
The rotation, in radians, in the x axis. |
rotation.y |
The rotation, in radians, in the y axis. |
rotation.z |
The rotation, in radians, in the z axis. |
rotation |
The rotation, in radians, in the z axis. This is identical to setting the rotation.z field. |
scale.x |
Scale factor for the x axis. |
scale.y |
Scale factor for the y axis. |
scale.z |
Scale factor for the z axis. |
scale |
Average of all three scale factors. |
translation.x |
Translate in the x axis. |
translation.y |
Translate in the y axis. |
translation.z |
Translate in the z axis. |
translation |
Translate in the x and y axis. Value is an NSSize or CGSize. |
访问别的类的属性或者方法
myAppDelegate *appDelegate
= (myAppDelegate *)[[UIApplication sharedApplication] delegate];
[[[appDelegate rootViewController] flipsideViewController] myMethod];
遍历子视图
for (UIImageView *anImage in [self.view subviews]) {
if (anImage.tag == 1) {
// do something
}
}
播放音乐
// 设置音乐文件路径
path = [[NSBundle mainBundle] pathForResource:@"mani" ofType:@"mp3"];
// 判断是否可以访问这个文件
if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
// 设置 player
player = [[AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:path] error:nil];
// 调节音量 (范围从0到1)
player.volume = 0.4f;
// 准备buffer,减少播放延时的时间
[player prepareToPlay];
// 设置播放次数,0为播放一次,负数为循环播放
[player setNumberOfLoops:-1];
[player play];
}
随机数
rand()
例:
[_cloud02 setFrame:CGRectMake(-1024+rand()%600, -768+rand()%300, 2048, 1536)];
[_cloud01 setFrame:CGRectMake(-1024+rand()%600, -768+rand()%300, 2048, 1536)];
Timer
每秒调用
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:YES];
如果需要传递参数的话:
[NSTimer scheduledTimerWithTimeInterval:1 target:self
selector:@selector(myMethod)
userInfo:myObject
repeats:YES];
-(void)myMethod:(NSTimer*)timer {
// Now I can access all the properties and methods of myObject
[[timer userInfo] myObjectMethod];
}
停止Timer
[myTimer invalidate];
myTimer = nil;
时间
CFAbsoluteTime myCurrentTime = CFAbsoluteTimeGetCurrent();
在模拟器里测试 App 的加速度感应功能
在模拟器里可以用鼠标点击模拟 iPhone 的触摸操作,但重力感应(比如用户倾斜机身来操控飞机/赛车)怎么模拟?按住 command 再按左右方向键,就能在电脑模拟器上测试加速度感应了。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 漂亮的thinkphp 跳转页封装示例
- thinkphp5框架前后端分离项目实现分页功能的方法分析
- laravel 根据不同组织加载不同视图的实现
- 详解将数据从Laravel传送到vue的四种方式
- Laravel实现ApiToken认证请求
- laravel 实现划分admin和home 模块分组
- laravel在中间件内生成参数并且传递到控制器中的2种姿势
- 在laravel框架中实现封装公共方法全局调用
- laravel通过a标签从视图向控制器实现传值
- 在Laravel 的 Blade 模版中实现定义变量
- 解决Laravel5.5下的toArray问题
- Laravel基础_关于view共享数据的示例讲解
- 解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
- 解决laravel资源加载路径设置的问题
- laravel实现前后台路由分离的方法