SORU
13 Ocak 2009, Salı


iPhone "" kilidini açmak için kaydırın; animasyon

Apple uygulanan nasıl öğrenecem "kilidi açmak için kaydırın" ("kapalı" aynı olan başka bir örnektir) animasyon güç için slayt?

Maske - ama maskeleme animasyon çeşit performansı artırmak için iPhone OS kullanılamaz düşündüm.

Onlar kullanmış olabilir bazı özel API etkisi (SuckEffect gibi) var mı? Etkisi spot lamba türü? Bazı Temel Animasyon şeyi?

Edit: Kesinlikle fotoğraf bir dizi değil. Plıst bir değer ya da bir şey düzenlemek örnek gördüm ve jailbreak iPhone dizesini özelleştirmek.

CEVAP
6 Mayıs 2010, PERŞEMBE


Sadece Temel Animasyon kullanılarak yapılmış, bir katman üzerinde maske katmanı metin görüntüleme animasyon olabilir.

Bu herhangi bir düz UİViewController deneyin (yeni Güncellemelerinden bir proje dayalı başlayabilirsinizGörünüm tabanlı bir uygulamaproje şablonu), ya da böyle büyük mükafat projem yakala here:

CALayer.mask Bu özellik iPhone OS 3.0 ve sonraki sürümlerinde kullanılabilir olduğunu unutmayın.

- (void)viewDidLoad 
{
  self.view.layer.backgroundColor = [[UIColor blackColor] CGColor];

  UIImage *textImage = [UIImage imageNamed:@"SlideToUnlock.png"];
  CGFloat textWidth = textImage.size.width;
  CGFloat textHeight = textImage.size.height;

  CALayer *textLayer = [CALayer layer];
  textLayer.contents = (id)[textImage CGImage];
  textLayer.frame = CGRectMake(10.0f, 215.0f, textWidth, textHeight);

  CALayer *maskLayer = [CALayer layer];

  // Mask image ends with 0.15 opacity on both sides. Set the background color of the layer
  // to the same value so the layer can extend the mask image.
  maskLayer.backgroundColor = [[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.15f] CGColor];
  maskLayer.contents = (id)[[UIImage imageNamed:@"Mask.png"] CGImage];

  // Center the mask image on twice the width of the text layer, so it starts to the left
  // of the text layer and moves to its right when we translate it by width.
  maskLayer.contentsGravity = kCAGravityCenter;
  maskLayer.frame = CGRectMake(-textWidth, 0.0f, textWidth * 2, textHeight);

  // Animate the mask layer's horizontal position
  CABasicAnimation *maskAnim = [CABasicAnimation animationWithKeyPath:@"position.x"];
  maskAnim.byValue = [NSNumber numberWithFloat:textWidth];
  maskAnim.repeatCount = HUGE_VALF;
  maskAnim.duration = 1.0f;
  [maskLayer addAnimation:maskAnim forKey:@"slideAnim"];

  textLayer.mask = maskLayer;
  [self.view.layer addSublayer:textLayer];

  [super viewDidLoad];
}

Görüntüleri bu kod tarafından kullanılır:

Mask Layer Text Layer

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • Kat Krazy

    Kat Krazy

    12 Kasım 2010
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011