将CGBitmapContext渲染为UIScrollView

时间:2015-10-21 13:23:28

标签: c# ios xamarin uiscrollview ios9

我基本上需要在CGBitmapContext中显示UIScrollView的图像。最终目标是渲染图像并允许以任何比例/偏移进行缩放,滚动和更新。到目前为止,我已尝试使用UIImageView

this.Image = new UIImage(this.bmpContext.ToImage()); // "this" being the UIImageView

这根本不会呈现任何东西,但我可能只是遗漏了一些东西。我尝试过的另一种技术是使用我Draw(CGRect)的{​​{1}}调用中的当前上下文(此处不是UIView):

UIImageView

这部分有效。它以1:1的比例正确呈现,但不会按预期呈现在(0,0),并且小于预期的大小。

我觉得必须有一种更简单的方法来做到这一点,我只想在using (CGImage image = this.bmpContext.ToImage()) { CGContext context = UIGraphics.GetCurrentContext(); context.SaveState(); context.InterpolationQuality = CGInterpolationQuality.High; //Translate and flip vertically to render in the right orientation context.TranslateCTM(0, this.Frame.Height); context.ScaleCTM(1.0f,-1.0f); context.DrawImage(this.Frame, image); context.RestoreState(); } 中显示图像,并且能够随时移动,捏缩放和更新视图。有没有办法实现这个目标?直接在UIScrollView内绘制并忘记UIView

会更简单吗?

更新:

我在这里得到了一些东西,我使用图像大小来翻译和绘制它。它比边界或框架更加一致。这就是我所拥有的:

UIImageView

现在,这在我第一次绘制时正确呈现,但是如果我再次渲染,它只会更新屏幕的一部分。

  • 比例为1:1,一切都很好
  • 以1:2的比例(缩小,缩小),它只更新屏幕的50%左右(0,0,宽度/ 2,高度/ 2)
  • 按照3:4的比例,它也是大约75%。

问题是,图像以适当的大小呈现,但是被iOS认为应该限制的某种矩形剪裁。这里有什么我想念的吗?我试图扩展它,但它似乎真的卡在那里,我无法扩大它。至少我还没有成功!

0 个答案:

没有答案