UIScrollView 停止得太早
UIScrollView is stopping too soon
我正在使用 scrollview 为我的应用程序制作图片库,而且我大部分时间都在使用它。它可以让我一张一张地滚动浏览图片,但最后一张图片总是被截断,我不确定为什么。
这是大部分操作:
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++;
}
减去那个缺陷,这完美地工作,正如我所期望的那样。
来自共享代码,ContenSize
的 Width
是:
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);
因此,实际上ContenSize
的Width
不可能包含ImageView
的全部内容。并且如果ImageView的个数越大,最后一张图会被切掉的越多
您可以修改 ContentSize
的 Width
如下来检查它是否有效:
svGallery.ContentSize = new CGSize
{
Width = (svGallery.Frame.Width + 50) * (idx + 1)
};
我正在使用 scrollview 为我的应用程序制作图片库,而且我大部分时间都在使用它。它可以让我一张一张地滚动浏览图片,但最后一张图片总是被截断,我不确定为什么。
这是大部分操作:
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++;
}
减去那个缺陷,这完美地工作,正如我所期望的那样。
来自共享代码,ContenSize
的 Width
是:
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);
因此,实际上ContenSize
的Width
不可能包含ImageView
的全部内容。并且如果ImageView的个数越大,最后一张图会被切掉的越多
您可以修改 ContentSize
的 Width
如下来检查它是否有效:
svGallery.ContentSize = new CGSize
{
Width = (svGallery.Frame.Width + 50) * (idx + 1)
};