UIScrollView停止得太早



我正在使用滚动视图为我的应用程序制作一个图像库,我已经基本上可以使用了。它可以让我一个接一个地滚动图像,但最后一个图像总是被剪掉,我不知道为什么。

这是大部分操作:

var idx = 0;
foreach (var mediaItem in _mediaItems)
{
var xPosition = UIScreen.MainScreen.Bounds.Width * idx;
var imageView = new UIImageView();
imageView.SetImage(new NSUrl(mediaItem), UIImage.FromBundle("image_placeholder"));
imageView.Frame = new CGRect(xPosition, 0, svGallery.Frame.Width + 50, svGallery.Frame.Height);
imageView.ContentMode = UIViewContentMode.ScaleAspectFit;
svGallery.ContentSize = new CGSize
{
Width = svGallery.Frame.Width * (idx + 1)
};
svGallery.AddSubview(imageView);
idx++;
}

减去这个缺陷,这是完美的工作,正如我所期望的。

根据共享代码,ContenSizeWidth为:

Width = svGallery.Frame.Width * (idx + 1)

然而,ImageView的每个Width(svGallery.Frame.Width + 50(大于vGallery.Frame.Width:

imageView.Frame = new CGRect(xPosition, 0, svGallery.Frame.Width + 50, svGallery.Frame.Height);

因此,实际上ContenSizeWidth不能包含ImageView的全部内容。如果ImageView的数量越大,最后一张图片将被剪切得越多。

您可以如下修改ContentSizeWidth以检查其是否工作:

svGallery.ContentSize = new CGSize
{
Width = (svGallery.Frame.Width + 50) * (idx + 1)
};

最新更新