使与子视图添加一个UIView到一个单一的形象?(make a UIView with added

2019-09-18 08:34发布

我有添加子视图的视图。 我想谈谈与许多子视图该视图为一个图像或视图。

这怎么可能?
谢谢

Answer 1:

在iOS7您可以使用新的[UIView snapshotViewAfterScreenUpdates:]方法。

支持老的操作系统,你可以提供任何观点与核芯显卡的UIImage的。 我用这个类别上的UIView快照:

UView+Snapshot.h

#import <UIKit/UIKit.h>

@interface UIView (Snapshot)
- (UIImage *)snapshotImage;
@end

UView+Snapshot.m

#import "UIView+Snapshot.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (Snapshot)

- (UIImage *)snapshotImage
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultingImage;
}

@end

它需要QuartzCore框架,所以一定要确保将它添加到您的项目。

要使用它导入头和:

UIImage *snapshot = [interestingView snapshotImage];


Answer 2:

这的确是可能的,采用核芯显卡的渲染功能渲染视图为背景,然后与上下文的内容初始化的图像。 查看答案这个问题的一个很好的技术。



Answer 3:

这里是一个快速的2.X版本Vytis例如

extension UIView {

    func snapshotImage() -> UIImage {
        UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, 0.0)
        self.layer.renderInContext(UIGraphicsGetCurrentContext()!)
        let resultingImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return resultingImage
    }
}


文章来源: make a UIView with added subviews into a single image?
标签: ios uiview