这是我的代码:
- (void)shareButtonTapped
{
CGSize newImageSize = CGSizeMake(850.0, 850.0);
UIGraphicsBeginImageContextWithOptions(newImageSize, YES, _aImageView.image.scale);
[self.aImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
[self.aImageView.image drawInRect:CGRectMake(0, 0, newImageSize.width, newImageSize.height)];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// UIActivityViewController code here
}
现在,如果我点击邮件按钮,例如,图像是 newImageSize,但我的 _aImageView.image 只显示在左上角,而图像的其余部分是纯黑色的。
如何编辑此代码以将图像缩放到 850 x 850 或高分辨率尺寸,以便通过电子邮件或社交媒体共享时看起来清晰?
谢谢!
编辑*
还是卡住了。我觉得我快到了。
这是我的新代码:
- (void)shareButtonTapped
{
_topBarImageView.hidden = YES;
_bottomBarImageView.hidden = YES;
CGSize newImageSize = CGSizeMake(600.0, 600.0);
UIGraphicsBeginImageContextWithOptions(newImageSize, YES, _aImageView.image.scale);
[_aImageView.layer = renderInContext:UIGraphicsGetCurrentContext()];
[_aLabel drawTextInRect:CGRectMake(20, 250, 280, 140)];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIImage * newImage = [UIImage imageWithImage:image scaledToSize:newImageSize];
UIGraphicsEndImageContext();
_topBarImageView.hidden = NO;
_bottomBarImageView.hidden = NO;
// Share Code
}
所以我隐藏了这个屏幕上的几个自定义图像视图。我唯一想要共享的是 aImageView 和 aLabel。
例如,现在当我打开电子邮件时,我可以看到 newImageSize,但框的大部分仍然是黑色的。我仍然无法弄清楚我错过了什么。