2013-04-25 2 views
1

У меня есть несколько UIVies, оттолкнутых от края до края. Представления полностью охватывают супервизор. Выглядит отлично на дисплее, но когда визуализируются смежные края, видимые, то есть сидение между ними. Поскольку представления выглядят идеально на дисплее, я полагаю, что это должна быть интерполяция пикселей точек зрения, которая вызывает это.Проблема с интерполяцией после renderInContext: UIGraphicsGetCurrentContext(), iOS

Кто-нибудь знает, как это исправить?

Изображение ниже представляет собой рендер. На устройстве или симуляторе линии не будут видны. enter image description here

визуализации кода

-(void)renderImage { 
    CGSize renderSize = CGSizeMake(masterView.frame.size.width, masterView.frame.size.height); 
    UIGraphicsBeginImageContext(renderSize); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(context); 
    CGContextConcatCTM(context, [[masterView layer] affineTransform]); 
    [[masterView layer] renderInContext:UIGraphicsGetCurrentContext()]; 
    renderedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    CGContextRestoreGState(context); 
    UIImageWriteToSavedPhotosAlbum(renderedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 
    masterView.transform = CGAffineTransformIdentity; 
} 
+0

ли вы решить эту проблему? Я столкнулся с такой же проблемой при разработке моего приложения. – Eleanore

ответ

-1

попробовать:

UIGraphicsBeginImageContextWithOptions(renderSize, false, [[UIScreen mainScreen] scale]); 

вместо:

UIGraphicsBeginImageContext(renderSize); 
+0

Спасибо за предложение! Пока это не устранило проблему. Любой отзыв о том, почему вы предложили это, может быть полезным. – Mrwolfy

0

графическое ядро ​​попытки анти псевдоним ваших взглядов. Вы должны сказать это не делать этого.

Рассмотрим следующий пример, который визуализирует себя, а UIView, как UIImage без анти наложения:

UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, [[UIScreen mainScreen] scale]); 
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), FALSE); 
[self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

 Смежные вопросы

  • Нет связанных вопросов^_^