Red Bull X-Fighters от I-play скоро… Ric Rocco: International Art Thief
Июл 30

Сегодня мы рассмотрим небольшой проект с NSTimers, а именно — создание приложения, иллюстрирующего лошадиные бега. Нам предстоит создать представление с шестью небольшими синими квадратами “UIView“. Расположив их внизу экрана, мы с помощью таймера выведем один из квадратов вперед на произвольное расстояние. Приступаем!

Источник

Исходный код можно найти здесь.

Шаг 1

В xCode создайте приложение на основе представления и присвойте ему любое имя.

Шаг 2

В заголовочный файл класса контроллера представления добавьте следующий код:

1
NSTimer *myTimer;

Шаг 3

В классе контроллера представления откомментируйте метод “viewDidLoad” и внесите туда представленный ниже код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- (void)viewDidLoad
{
[super viewDidLoad];

CGRect workingFrame;
workingFrame.origin.x = 15;
workingFrame.origin.y = 400;
workingFrame.size.width = 40;
workingFrame.size.height = 40;

for(int i = 0; i < 6; i++)
{
UIView *myView = [[UIView alloc] initWithFrame:workingFrame];
[myView setTag:i];
[myView setBackgroundColor:[UIColor blueColor]];

workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width + 10;
[self.view addSubview:myView];
}

myTimer = [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(moveACar) userInfo:nil repeats:YES];
}

Шаг 4

В классе контроллера представления добавьте следующий метод:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-(void)moveACar
{
int r = rand() % 6;
NSLog(@"My number is %d", r);

for(UIView *aView in [self.view subviews])
{
if([aView tag] == r)
{
int movement = rand() % 100;
CGRect workingFrame = aView.frame;
workingFrame.origin.y = workingFrame.origin.y - movement;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.2];
[aView setFrame:workingFrame];
[UIView commitAnimations];

if(workingFrame.origin.y < 0)
{
[myTimer invalidate];
}
}
}
}

Заключение

Вот, собственно, и все. Таймеры — действительно отличная штука, удобная для решения разноплановых мелких проблем в проекте. Удачи в программировании!’

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 4.50 из 5)
Загрузка ... Загрузка ...


One Response to “Уроки iPhone SDK: NSTimer: просто, но эффективно”

  1. 1. iGeorG Says:

    очень круто )))) спасибо ))))

Оставьте комментарий