CGContextTranslate呈现错误的位置

时间:2014-01-22 03:21:25

标签: ios7 uiimage cgcontext

我正在尝试从CGContext创建一个UIImageView但是 - 出于某种原因 - 我的iPad版本上的图像略微偏离目标(但不是iPhone!)。 我正在传递textview本身(尝试传递UIView层...)。 我已经包含了一个viewImage看起来像的图片。显然,我希望图像由整个正方形组成,“在这里看到你的翻转文本(完成后)”完全封闭......

有什么想法吗?!

这是我的代码:

-(UIImage *)getImage:(UITextView *)v
{
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions([v frame].size, NO, [UIScreen mainScreen].scale);
    } else {
        UIGraphicsBeginImageContext([v frame].size);
    }
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, -v.frame.origin.x, -v.frame.origin.y);
    CGContextSaveGState(context);

    [[self.view layer] renderInContext:context];


    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return viewImage;
}

这是从上下文渲染的UIImage(帧原点的x,y坐标似乎很好......) UIImage that is rendered from context

View Controller可能出错吗?我认为我的设置不正常...... Could something be wrong with my View Controller?

这就是我想要返回的UIImage(或多或少): final output

1 个答案:

答案 0 :(得分:1)

好像您的视图v嵌入在另一个视图中 - 在这种情况下,您正在从错误的图层拍摄快照。 2个选项:  1.将要拍摄快照的图层的视图更改为v的superview(父级)。  2.将视图v移到外面,使其父视图为self.view。

干杯!