iPhone iOS 如何就地翻转/反射(reflect)任何 UIView?

标签 iphone objective-c ios uiview core-graphics

我知道如何通过在其边界内重新绘制来翻转/反射/旋转 UIImage。

- (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();

}

但是我如何为任何 UIView 创建“翻转/反射”效果,最好将其中心保持在与以前相同的位置?

谢谢!

最佳答案

 [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];
    }

以上代码用于 UIView 动画。您将在其中获得各种类型动画的选项。

关于iPhone iOS 如何就地翻转/反射(reflect)任何 UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685422/

相关文章:

objective-c - 如何在 Swift 或 Objective C 中将文本添加到文件中?

ios - 将元数据添加到我的图像并将其保存在文档目录中

objective-c - Cocoa:当窗口不可见时应用程序关闭

ios - 处理 Collection View Cell 中元素的手势事件

iphone - 如何隐藏 UIView 的子框架?

iphone - 如何将我的应用程序的设置放置在 iPhone "Settings"屏幕中

iphone - 您会将 SQLite 数据库文件放在 iPhone 应用程序的什么位置?

iphone - dismissModalViewController 与 iAds。横幅 View 有广告但可能被遮挡

ios - 代码 "The private key for is not installed on this mac - distributing"

ios - 在装有 IOS7 的 iPad 上关闭后智能应用横幅不会出现