我对 Xamarin 很陌生。我要做的是构建一个简单的应用程序,上面有 3 个图像。每张图片都需要水平滑动才能显示下一张图片。我从一个叫做“混搭”的儿童游戏中得到这个想法。游戏可以让你改变卡通动物的头部、身体和脚部。
因此,如果我有一组 5 张图像被分成三部分(头部、身体、脚),我怎样才能在屏幕上显示图像以便让它们滑动?
我试图堆叠 3 个画廊控件,但无法让图像填满屏幕。
屏幕应该是这样的;
这可以在 Xamarin for Android 或 IOS 中构建吗?
谢谢你的帮助。
对于 iOS,您可以使用UIPageControl
. UIPageControl
对于 Head、Body、Feet,您会有不同的对象。这个想法是你将拥有UIView
一个UIScrollView
(也是其中三个)。UIScrollView
将包含身体的所有不同部位(例如头部)。PageControl
将处理滑动手势识别和动画,您将设置UIScrollView
应该在UIPageControl
s 事件中显示的部分ValueChanged
。代码将如下所示:
在ViewDidLoad
:首先您将五个头部部分添加到UIScrollView
. 我假设你在一个UIView
名为 s的数组中有这五个头部部分headPageViews
。
RectangleF frame;
for (int i=0; i<5; i++)
{
UIView pageView = headPageViews[i];
frame = headPageViews[i].Frame;
// change Frame.X so that the views are next to each other in scrollView
frame.X = i * this.scrollViewHead.Frame.Width;
pageView.Frame = frame;
this.scrollViewHead.AddSubViews(pageView);
}
在ViewDidLoad
:接下来您设置UIPageControl
您通过界面生成器添加的内容:
this.pageControlHead = new UIPageControl(frame);
this.pageControlHead.HidesForSinglePage = true;
this.pageControlHead.ValueChanged += HandlePageControlHeadValueChanged;
this.pageControlHead.Pages = 5; this.viewHead.AddSubview(this.pageControlHead);
代码中的某处:最后你处理ValueChanged
事件:
private void HandlePageControlHeadValueChanged(object sender, EventArgs e)
{
this.scrollViewHead.SetContentOffset(new PointF(this.pageControlHead.CurrentPage * this.scrollViewHead.Frame.Width, 0), true);
}
对其他身体部位重复这些步骤,您应该会获得所需的效果。
您还可以在定位为您添加的图像的UIViewController中使用 3 个UIScrollView,并将该UIScrollView设置为启用分页。在那些UIScrollViews中设置图像的裁剪部分,然后您就可以轻松实现它。
希望这可以帮助。