Воспроизведение сири-кнопки

Есть ли способ дублирования анимации сири-кнопок? Это выглядит абсолютно великолепно, но я понятия не имею, в какой момент, как начать … есть ли онлайн-форматированные png, которые вращаются? или это делается с CoreAnimation?

  • как я могу получить объект PDF (строка, изображение и т. д.), который был затронут пользователем?
  • Рисование NSString для UIImage
  • Какая эта ошибка является недопустимым контекстом 0x0?
  • Как заполнить область ниже пути в Quartz 2D?
  • Как установить границу градиента на UIView?
  • Процедурное оживление роста 2D-установки
  • Аннотации (примечания, комментарии) с использованием Quartz 2d в ios
  • Могу ли я программно добавить аннотацию ссылки к PDF-файлам?
  • 3 Solutions collect form web for “Воспроизведение сири-кнопки”

    Я считаю, что анимация Siri производится с помощью CAEmitterLayer и CAEmitterCell, а затем анимирована с помощью базовой анимации, но я могу быть абсолютно неправой. Вот код, который имитирует эффект:

    // create emitter layer self.emitterLayer = [CAEmitterLayer layer]; self.emitterLayer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); self.emitterLayer.emitterMode = kCAEmitterLayerOutline; self.emitterLayer.emitterShape = kCAEmitterLayerLine; self.emitterLayer.renderMode = kCAEmitterLayerAdditive; [self.emitterLayer setEmitterSize:CGSizeMake(4, 4)]; // create the ball emitter cell CAEmitterCell *ball = [CAEmitterCell emitterCell]; ball.color = [[UIColor colorWithRed:111.0/255.0 green:80.0/255.0 blue:241.0/255.0 alpha:0.10] CGColor]; ball.contents = (id)[[UIImage imageNamed:@"ball.png"] CGImage]; // ball.png is simply an image of white circle [ball setName:@"ball"]; self.emitterLayer.emitterCells = [NSArray arrayWithObject:ball]; [self.view.layer addSublayer:self.emitterLayer]; float factor = 1.5; // you should play around with this value [self.emitterLayer setValue:[NSNumber numberWithInt:(factor * 500)] forKeyPath:@"emitterCells.ball.birthRate"]; [self.emitterLayer setValue:[NSNumber numberWithFloat:factor * 0.25] forKeyPath:@"emitterCells.ball.lifetime"]; [self.emitterLayer setValue:[NSNumber numberWithFloat:(factor * 0.15)] forKeyPath:@"emitterCells.ball.lifetimeRange"]; // animation code CAKeyframeAnimation* circularAnimation = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"]; CGMutablePathRef path = CGPathCreateMutable(); CGRect pathRect = CGRectMake(0, 0, 200, 200); // define circle bounds with rectangle CGPathAddEllipseInRect(path, NULL, pathRect); circularAnimation.path = path; CGPathRelease(path); circularAnimation.duration = 2; circularAnimation.repeatDuration = 0; circularAnimation.repeatCount = 3; circularAnimation.calculationMode = kCAAnimationPaced; [self.emitterLayer addAnimation:circularAnimation forKey:@"circularAnimation"]; 

    В классах CAEmitterCell и CAEmitterLayer имеется много свойств, поэтому проверьте их больше.

    Я предлагаю вам сделать это с PNG, которые отображаются один за другим, так что получается гладкая анимация. Это проще, чем программирование кодированной анимации. Кнопка уже была воссоздана Арроном Хантом: Файл Сири Button Photoshop

    Btw. Астрономию спрайтов очень легко реализовать:

     - (void)viewDidLoad { [super viewDidLoad]; NSArray * imageArray = [[NSArray alloc] initWithObjects: [UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], [UIImage imageNamed:@"3.png"], [UIImage imageNamed:@"4.png"], [UIImage imageNamed:@"5.png"], [UIImage imageNamed:@"6.png"], [UIImage imageNamed:@"7.png"], [UIImage imageNamed:@"8.png"], [UIImage imageNamed:@"9.png"], [UIImage imageNamed:@"10.png"], [UIImage imageNamed:@"11.png"], [UIImage imageNamed:@"12.png"], nil]; UIImageView * ryuJump = [[UIImageView alloc] initWithFrame: CGRectMake(100, 125, 150, 130)]; ryuJump.animationImages = imageArray; ryuJump.animationDuration = 1.1; ryuJump.contentMode = UIViewContentModeBottomLeft; [self.view addSubview:ryuJump]; [ryuJump startAnimating]; } 

    Источник: http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/

    UIImageView имеет свойство, называемое animationImages, которое вы можете использовать для указания списка изображений, которые он будет воспроизводить последовательно, например анимированный GIF. Это, вероятно, самый простой способ сделать это, если вы хотите точно контролировать эффект.

    Нечто подобное можно было бы также сделать с помощью CoreAnimation, используя одно изображение и анимируя его свойство view.transform, используя CGAffineTransformMakeRotation (угол).

    Interesting Posts

    Недопустимые права на подписание кода для фреймворков – ERROR ITMS-90046

    перевод точки на угол ios

    iOS CorePlot – линейный график с датой по оси x и двойные числа по оси y

    Преобразование строк в float в Swift Beta 5

    аналитическое программное обеспечение пользовательского контента в обзоре магазина приложений iOS (приложение отклонено)

    Использовать API поиска Apple для поиска по жанру?

    Проблема при установке приложения iOS на Visual Studio 2015 выкинет агента Xamarin Mac

    обновление моего приложения, чтобы поддерживать только iOS 4.3+, что происходит с пользователями iOS <4.3?

    Поддерживает ли Calabash iOS8

    Как вы сохраняете уникальность виртуального MIDI-источника из MIDISourceCreate ()?

    Подвижность вкладок UITabBarController и разворачивание ссылок на рекламу

    Приложение ios для разблокировки сна / разговора?

    Ошибка при подписании кода: проверка неудачной команды

    Как зарегистрировать схему URL-адреса для открытия приложения с помощью Xcode 4?

    Вызов межстраничного iAd работает только один раз

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.