Помогите с Xcode - PullRequest
       15

Помогите с Xcode

2 голосов
/ 27 сентября 2010

Я совершенно новичок в Xcode, и мне нужна небольшая помощь ...

Я создал проект какао, а затем открыл файл main.xib в «Интерфейсном Разработчике».

В Интерфейсном Разработчике я добавил объект NSImageView и установил изображение в файл gif внутри папки ресурсов в проекте.

Мне нужно знать, как именно я могу запрограммировать приложение, чтобы NSImageView менял свое местоположение каждую миллисекунду или около того.

Может ли кто-нибудь просветить меня?

- G

1 Ответ

0 голосов
/ 16 марта 2012

После подключения 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;
}
...