2012-05-21 13 views
8

UIImage'ı, sınırları dahilinde yeniden çizerek nasıl çevireceğinizi/yansıtacağınızı/döndüreceğinizi biliyorum.iPhone iOS herhangi bir UIView'i yerinde nasıl çevirebilir/yansıtabilir?

- (IBAction)reflectImageView:(UIImageView)imageView { 

    UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 0.0); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextScaleCTM(context, 1.0, -1.0); 
    CGContextTranslateCTM(context, 0.0, -imageView.bounds.size.height); 


    [imageView.layer renderInContext:context]; 
    imageView.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

} 

Ama nasıl, herhangi UIView için bir "çevirme/yansıtmak" etkisi yaratmak do tercihen daha önce olduğu gibi aynı konumda merkezi olduğunu tutarak?

Teşekkür ederiz!

+0

Sorunuz, görüntünün nasıl döndürüleceğiyle ilgili cevabım: P teşekkürler +1 –

cevap

4
[UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.75]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.activeView cache:YES]; 
    //  [self.activeView removeFromSuperview]; 
    [UIView commitAnimations]; 

    NSNumber* isReflected = [self.activeView.attributedView.attributes valueForKey:kIsReflected]; 
    if(isReflected.boolValue) 
    { 
     self.activeView.transform = CGAffineTransformMakeScale(1,1); 
     [self.activeView.attributedView.attributes setValue: [NSNumber numberWithBool:NO] forKey:kIsReflected]; 
    }else { 
     //do reflection 
     self.activeView.transform = CGAffineTransformMakeScale(-1,1); 
     [self.activeView.attributedView.attributes setValue: [NSNumber numberWithBool:YES] forKey:kIsReflected]; 
    } 

Yukarıdaki kod, UIView Animation için kullanılır. Çeşitli türlerde animasyonlar için bir seçenek bulacaksınız.

+0

Bu, animasyonu oynatır, ancak görünüm aynı kalır. Görünümü süper görüntüden kaldırırsam, yerinde hiçbir şey kalmaz. Animasyon çok güzel, ancak aslında –

1

Sen

UIGraphicsBeginImageContext(self.view.frame.size); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

tarafından herhangi bir Görünümde bir "ekran" yapıp sonra UIImage çevirmek ve görünümünün altında çıkan Image ile UIImageView ekleyebilir.

+0

görünümünün ayna görüntüsünü görüntülemem gerekiyor. Kullanıcı, yansıdığında bile görüntüyle etkileşime devam etmesini istiyorum. Düzenli bir görünüm yerine bir UIImageView görüntüleme bir seçenektir, ancak görünüm "gerçek" olduğunda ve bir "görüntü" olduğunda çok fazla kullanıcı eğitimi gerektirebilir –

+0

Ne harika bir kod parçası! Hala 4 yıl sonra bir çekicilik gibi çalış –

İlgili konular