图像不保留缩放比例和偏移

时间:2014-03-09 02:37:51

标签: c# ios uiscrollview xamarin.ios xamarin

我在UIImageView内有一个ScrollView。该应用程序允许用户在滚动视图中平移/缩放图像,然后应用程序保存滚动视图的ContentOffsetZoomScale数据。

当我重新加载ViewController时,我会执行以下操作:

myImageView.image = UIImage.FromFile("image.jpg");
myScrollView.SetZoomScale(zoomScale, true);
myScrollView.SetContentOffset(contentOffset, true);

但是加载的图像不会出现在滚动视图中的相同位置。

1 个答案:

答案 0 :(得分:3)

为了保存缩放图像的状态,您需要保存缩放比例和偏移。如果要使用这些变量加载相同的图像,则必须在更新GUI的方法中具有特定顺序(初始化控件,更改框架等...)

订单应该是: - 初始化您的控件:

UIImageView imageView = new UIImageView (this.view.bounds);
imageView.Image = image;
imageView.ContentMode = UIViewContentMode.ScaleAspectFit;
imageView.ClipToBounds = true;

UIScrollView scrollView = new UIScrollView (this.View.Bounds);
scrollView.ContentSize = new SizeF (imageView.Frame.Width, imageView.Frame.Height);
scrollView.MaximumZoomScale = 4f;
scrollView.MinimumZoomScale = 1f;
scrollView.ViewForZoomingInScrollView += (UIScrollView sv) => 
{
    return imageView;
};

- 将控件添加到右侧视图

this.View.AddSubview (scrollView);

scrollView.AddSubview (imageView);

- 完成后,您可以调整偏移量

scrollView.SetContentOffset (new PointF (50, 50), false);

- 和您的缩放比例

scrollView.ZoomToRect (new RectangleF (50, 50, 100, 100), false);

希望这有帮助!祝你好运!