2010-05-14 4 views
1

Я успешно реализовал приложение, которое работает как на ipad, так и на iphone. В этом случае я предоставил пользователю возможность отправить снимок экрана приложения в виде вложения электронной почты. Даже это хорошо работает. Но мой код снимает снимок, независимо от ориентации. Изображение, которое я получаю, всегда в портретном режиме. Я хочу снять снимок экрана в зависимости от ориентации ipad/iphone и отправить изображение в виде вложения. Я использую следующий код, чтобы сделать снимок экрана.iphone/ipad application - принятие снимка экрана

UIGraphicsBeginImageContext(screenWindow.frame.size); 
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

ответ

2

Существует категория реализуется Hardy Macia по адресу:

http://www.catamount.com/forums/viewtopic.php?f=21&t=967

Он имеет кучу категорий на UIImage. Тот, который вы хотите использовать это:

UIimage* newImage = [imageToBeRotated imageRotatedByDegrees:90.0]; 

Ваш угол будет зависеть от текущей ориентации устройства. Использование:

[[UIApplication sharedApplication] statusBarOrientation] 

, чтобы получить ориентацию устройства.

Надеюсь, это поможет.

0

Может быть вид сверху, который вы можете визуализировать, помимо фактического окна, которое уже повернуто. Если вы показываете строку состояния, попробуйте получить представление об этом. В противном случае что-то подобное может работать:

CGRect frame = screenWindow.frame; 

if (isLandscape) { 
    CGFloat t = frame.size.width; 
    frame.size.width = frame.size.height; 
    frame.size.height = t; 
} 

UIGraphicsBeginImageContext(frame.size); 

if (isLandscape) { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextRotateCTM(context , M_PI_2); 
    CGContextTranslateCTM(context , (frame.size.width - frame.size.height) * 0.5 , 
    (frame.size.height - frame.size.width) * 0.5); 
} 

... 

Вы, вероятно, придется возиться с CGContextTranslateCTM, но это должно быть близко к этому.