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 再按左右方向键,就能在电脑模拟器上测试加速度感应了。

上一篇:Web 开发的演变:转向 Web.Next


下一篇:什么是“WPF/E”?