Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Alex2301
-21 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
#1

Анимация UIView - Программирование iOS

19.03.2014, 19:54. Просмотров 871. Ответов 4
Метки нет (Все метки)

Есть 3 view, которые лежат друг на друге вот так:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
|------------------|
| 1                |
|  |-------------| |
|  | 2           | |
|  |  |--------| | |
|  |  | 3      | | |
|  |  |        | | |
|  |  |        | | |
|  |  |________| | |
|  |_____________| |
|__________________|
И нужно сделать свайп в верх по первой view, и тогда она и лежащие на ней 2 другие view начнут бесконечно крутиться против часовой стрелки, если сделать свайп по второй то начнет крутиться 2-я и 3-я, а первая будет на месте, и т.д. Подскажите как это сделать. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2014, 19:54     Анимация UIView
Посмотрите здесь:

UIBezierPath vs UIView - Программирование iOS
Всем доброго времени суток! Мне нужен ваш совет по поводу отрисовки в UIVIew. У меня следующая ситуация: Есть мой кастомный класс...

UIView с PageController - Программирование iOS
Здравствуйте! Может кто подсказать в чем проблема, хочу сделать UIView с PageController(чтобы на одной вьюшке было 7 экранов) Делаю по...

Рекурсивное создание UIView - Программирование iOS
Здравствуйте! Подскажите как сделать рекурсивное создание 15 UIView, каждая новая view должна располагаться поверх предыдущей. Спасибо!

Прижать UIView к низу - Программирование iOS
Подскажите как в коде прижать UIView к низу родительской вьюшки?

Constraints и размер UIView - Программирование iOS
У меня, допустим, есть UIView добавленная на родительскую View и к ней применены space constraints со всех четырех сторон, то есть она...

Изменить содержимое UIView сдвигом - Программирование iOS
Добрый день. Проблема в следующем: в методе viewDidLoad основного ViewController-а создаётся объект типа myView:UIView //...

Программное управление размерами UIView - Objective-C
итак начнем с того, что нам предоставляет ObjC из коробки ; метод мгновенно установит параметры прямоугольника области view ...

Добавить два UITextView в UIView программно - Swift
Привет! Не могу сообразить как добавить два UITextView в UIView программно что бы эти две текстовые вьюхи расположились равномерно...

Вращение UIView по типу часовой стрелки - Программирование iOS
Всем доброго времени суток, собственно есть задача иммитировать часы, избараздив просторы интернета и IOS Documentation, у меня получилось...

Создание UIView внутри UIScrollView программно - Objective-C
Ув. форумчане - нужна помощь. Как работать с интерфейс билдером я разобрался - теперь есть задача сделать интерфейс из кода. Сейчас...

Свой UIView - в каком методе добавить KVO ? - Программирование iOS
Есть CustomView,наследник UIView, с кнопкой и индикатором. В коде другого класса использую этот вью и меняю видимость кнопки. При этом...

Как добавить собственный UIView в нужное место? - Программирование iOS
Есть myView.xib, в котором один View с кнопочками. Есть класс MyUIView от IUView. В IB класс myUIView не выходит для привязки к View...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
19.03.2014, 22:12     Анимация UIView #2
Alex2301, используйте UISwipeGestureRecognizer.
Когда он отработает, запустите анимацию вращения для той UIView, для который был свайп.
Дополнительно, можете запустить другую анимацию для subviews той UIView, для которой был свайп.
Alex2301
-21 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
21.03.2014, 14:32  [ТС]     Анимация UIView #3
Цитата Сообщение от zulkis Посмотреть сообщение
Alex2301, используйте UISwipeGestureRecognizer.
Когда он отработает, запустите анимацию вращения для той UIView, для который был свайп.
Дополнительно, можете запустить другую анимацию для subviews той UIView, для которой был свайп.
А есть какой-то стандартный метод для такой анимации, или надо писать свой?

Добавлено через 1 час 41 минуту
Сделал так: по свайпу вызываю этот метод

Objective-C
1
2
3
4
5
6
7
8
9
- (void) startAnimation:(id)sender
{
[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(rotationAnimation) userInfo:nil repeats:YES];
}
 
- (void) rotationAnimation
{
 randView.transform = CGAffineTransformRotate(randView.transform,0.1);
}
Но он крутит все вьюхи, а как сделать что бы если свайпнул по второй то крутились 2 и 3, а не все 3 независимо от того по какой сделал свайп?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
21.03.2014, 15:59     Анимация UIView #4
Используйте
Objective-C
1
2
3
4
5
6
7
8
9
[UIView animateWithDuration:0.5
                          delay:1.0
                        options: UIViewAnimationCurveEaseOut
                     animations:^{
                         someView.frame = CGRectMake(0,0,0,0)
                     } 
                     completion:^(BOOL finished){
                         NSLog(@"Done!");
                     }];
Добавлено через 1 минуту
Цитата Сообщение от Alex2301 Посмотреть сообщение
Но он крутит все вьюхи, а как сделать что бы если свайпнул по второй то крутились 2 и 3, а не все 3 независимо от того по какой сделал свайп?
Ну используйте указатели на 2ю и 3ю UIView, соответственно.
Alex2301
-21 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
21.03.2014, 18:56  [ТС]     Анимация UIView #5
Цитата Сообщение от zulkis Посмотреть сообщение
Код Objective-C
[UIView animateWithDuration:0.5
* * * * * * * * * * * * * delay:1.0
* * * * * * * * * * * * options: UIViewAnimationCurveEaseOut
* * * * * * * * * * *animations:^{
* * * * * * * * * * * * *someView.frame = CGRectMake(0,0,0,0)
* * * * * * * * * * *}
* * * * * * * * * * *completion:^(BOOL finished){
* * * * * * * * * * * * *NSLog(@"Done!");
* * * * * * * * * * *}];
Это не та анимация котороя мне нужна, но я уже разобрался с анимацией


Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
- (void)rotateView
{
    
        [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
  
            [randView setTransform:CGAffineTransformRotate(randView.transform, 0.1)];
        }completion:^(BOOL finished){
            if (finished) {
                [self rotateView];
            }
        }];
   
}
А насчет указателей, как их получить? таким образом что бы по какой свайп сделал та и закрутилась.

Там как я понял нужно использовать objectAtIndex, но не понял как правильно это описать.

Добавлено через 2 часа 52 минуты
Objective-C
1
[(UIView*)viewArray[1] setTransform:CGAffineTransformRotate(randView.transform, 0.7)];

Вот пример анимации для 2-й.

Вопрос как получить индекс вьюхи по которой прошел свайп, чтобы вставить его сюда

Objective-C
1
[(UIView*)viewArray[??????] se.....
Yandex
Объявления
21.03.2014, 18:56     Анимация UIView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru