在Xamarin中使用页面控件滚动图像

时间:2014-04-03 04:16:27

标签: ios iphone xamarin.ios xamarin

我尝试在Xamarin中编写应用程序,它使用页面控件来切换图像,我使用这篇文章作为教程http://iosmadesimple.blogspot.ru/2013/01/page-control-for-switching-between-views.html但是我无法滚动我的图像,并且在调试中它不会在方法滚动的断点处停止。 我的代码:

public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();;
        scrollView.PagingEnabled = true;
        scrollView.ContentSize = new SizeF(scrollView.Frame.Width * 2,scrollView.Frame.Height);
        scrollView.ShowsHorizontalScrollIndicator = false;
        scrollView.ShowsVerticalScrollIndicator = false;
        scrollView.ScrollsToTop = false;

        scrollView.Scrolled += delegate
        {
            var pageWidth = scrollView.Frame.Size.Width;
            var page = (int)Math.Floor((scrollView.ContentOffset.X - pageWidth / 2) / pageWidth) + 1;
            pageControl.CurrentPage = page;
        };

        var pic = new UIImage ("first.png");
        var img = new UIImageView (pic);

        var pic2 = new UIImage ("second.png");
        var img2 = new UIImageView (pic2);

        var imageArray = new UIImageView[]{img,img2};

        for (var i = 0; i < 2; i++) {


            RectangleF frame = new RectangleF ();
            frame.X = scrollView.Frame.Size.Width * i;
            frame.Y = 0;
            frame.Size = scrollView.Frame.Size;

            imageArray [i].Frame = frame;


            scrollView.AddSubview (imageArray[i]);
        }

        scrollView.ContentSize = new SizeF(scrollView.Frame.Size.Width*2,scrollView.Frame.Size.Height);

    }

我也尝试创建自己的委托类并设置scrollView.Delegate = new ScrollViewDelegate(this)。

如果我使用故事板,会不会有问题?在连接检查器中 滚动视图: 奥特莱斯: 委托 - 页面控制 引用Outlets: scrollView FirstViewController 用于页面控制: 引用Outlets: delegate =滚动视图

1 个答案:

答案 0 :(得分:1)

我做过一次。你需要做的是: 你需要2个视图控制器,

  

UIPageviewController * (父控制器)*    ImageViewController (具有UIImageView的控制器)

  1. 创建 UIPageviewController (父控制器),覆盖其 GetNextViewController GetPreviousViewController 方法。
  2. 在此父控制器页面中维护一个页码计数器。
  3. 我假设您有一个列表&lt; UIImage&gt;
  4. GetNextViewController 方法中,您将递增计数器并显示列表&lt; UIImage&gt;(Page No Counter)并返回ImageViewController
  5. GetPreviousViewController 方法中,您将减少计数器并显示List&lt; UIImage&gt;(Page No Counter)并返回ImageViewController
  6. 希望这有帮助