当我在_parentView(UIView)
上展示iAd并创建此_parentView
的图片时。
我在UIImageView
上显示此图像(resulImage),然后此图像为空白(全黑)。
如何以编程方式获取iAd
的屏幕截图?
- (id)initWithView:(UIView *)currentView
{
self = [super init];
if (self) {
_parentView = currentView;
self.interstitial = [[ADInterstitialAd alloc] init];
self.interstitial.delegate = self;
}
return self;
}
- (void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd
{
[interstitialAd presentInView:_parentView];
[self takeScreenshot];
}
- (void)takeScreenshot
{
CGRect rect = CGRectMake(0, 0, _parentView.frame.size.width, _parentView.frame.size.height);
UIGraphicsBeginImageContext(rect.size);
[_parentView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
答案 0 :(得分:0)
您是否检查过该设备是否为iPad? 基于Official Apple document。
好像你正确地做了。你可能会检查是否
[interstitialAd presentInView:_parentView];
在继续之前,返回true的假。
如果这没有帮助,请尝试使用委托功能:
- (void)interstitialAd:(ADInterstitialAd *)interstitialAd didFailWithError:(NSError *)error;
如果它返回任何错误。
编辑: 尝试使用密钥窗口中的根视图控制器。它对我有用。
if([self.interstitial presentInView:_view])
{ NSLog(@"Able to present in view"); }
else
{ [self.interstitial presentFromViewController:[UIApplication sharedApplication].keyWindow.rootViewController]; }