我是Xcode的新手,我需要一些帮助...
我已经创建了一个cocoa项目,然后在“Interface Builder”中打开了main.xib文件。
在Interface Builder中,我添加了一个NSImageView对象,并将图像设置为项目资源文件夹中的gif文件。
我需要知道我是如何编写应用程序的,以便NSImageView每隔毫秒左右更改一次位置。
任何人都可以启发我吗?
- G ^
答案 0 :(得分:0)
将imageView连接到.h文件中的插座后,请执行以下操作:
在你的.h文件中:
@interface YourViewController : UIViewController{
NSTimer *mainTimer;
BOOL timerIsEnabled;
}
你的.m文件中的:
- (void)viewDidLoad
{
mainTimer = [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
timerIsEnabled = TRUE;
[super viewDidLoad];
}
-(void)updateTime{
if (timerIsEnabled) {
float dx = arc4random()%768+1;
float dy = arc4random()%1004+1;
CGPoint newPoint = CGPointMake(dx, dy);
UIView *touchView = imageView;
float midPointX = CGRectGetMidX(touchView.bounds);
// If too far right...
if (newPoint.x > self.view.bounds.size.width - midPointX)
newPoint.x = self.view.bounds.size.width - midPointX;
else if (newPoint.x < midPointX) // If too far left...
newPoint.x = midPointX;
float midPointY = CGRectGetMidY(touchView.bounds);
// If too far down...
if (newPoint.y > self.view.bounds.size.height - midPointY)
newPoint.y = self.view.bounds.size.height - midPointY;
else if (newPoint.y < midPointY) // If too far up...
newPoint.y = midPointY;
touchView.center = newPoint;
}
}
- (void)viewDidUnload
{
[mainTimer invalidate];
[self setImageView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
您还可以创建一个按钮来启动和停止计时器:
- (IBAction)go:(id)sender {
timerIsEnabled = !timerIsEnabled;
}