0

我对 Xamarin 很陌生。我要做的是构建一个简单的应用程序,上面有 3 个图像。每张图片都需要水平滑动才能显示下一张图片。我从一个叫做“混搭”的儿童游戏中得到这个想法。游戏可以让你改变卡通动物的头部、身体和脚部。

因此,如果我有一组 5 张图像被分成三部分(头部、身体、脚),我怎样才能在屏幕上显示图像以便让它们滑动?

我试图堆叠 3 个画廊控件,但无法让图像填满屏幕。

屏幕应该是这样的;

在此处输入图像描述

这可以在 Xamarin for Android 或 IOS 中构建吗?

谢谢你的帮助。

4

2 回答 2

1

对于 iOS,您可以使用UIPageControl. UIPageControl对于 Head、Body、Feet,您会有不同的对象。这个想法是你将拥有UIView一个UIScrollView(也是其中三个)。UIScrollView将包含身体的所有不同部位(例如头部)。PageControl将处理滑动手势识别和动画,您将设置UIScrollView应该在UIPageControls 事件中显示的部分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);
}

对其他身体部位重复这些步骤,您应该会获得所需的效果。

于 2013-10-31T11:23:43.217 回答
0

您还可以在定位为您添加的图像的UIViewController中使用 3 个UIScrollView,并将该UIScrollView设置为启用分页。在那些UIScrollViews中设置图像的裁剪部分,然后您就可以轻松实现它。

希望这可以帮助。

于 2014-04-09T10:29:57.820 回答