单击图像始终显示全视图Xamarin IOS中的最后一张图像

时间:2014-02-26 10:34:09

标签: c# xamarin.ios xamarin

在tableview单元格中,我动态显示一些消息和图像,如果我有更多图像 在水平滚动中显示。现在我的任务是点击特定图像需要在整页视图中显示该图像,我已经完成了代码,但我的问题是点击任何显示最后一张图像的图像。

任何人都可以帮助我。

        if (contents.Count > 0)
        {
            _scrollView = new UIScrollView (){Tag = 1002};
            //_image = new UIImageView (UIImage.FromBundle("placeholder.png"));
            _scrollView.Frame = new RectangleF (0, rowHeight, 320, 300);    
            _scrollView.PagingEnabled = true;
            _scrollView.Bounces = true;
            _scrollView.DelaysContentTouches = true;
            _scrollView.ShowsHorizontalScrollIndicator = true;
            //_scrollView.ScrollRectToVisible (new RectangleF (320, 0, 320, 480), true);
            ContentView.Add(_scrollView);
            int x = 35;
            bool setRowHeight = true;
            int scrollwidth = 0;

            foreach (var contentItem in contents)
            {

                if (contentItem.FilePath.Length != 0)
                {
                    index++;
                    //_image.SetImage (new NSUrl (contentItem.FilePath), UIImage.FromBundle ("placeholder.png"));
                    //_image.Tag = 1001;
                    _image = new UIImageView(FromUrl(contentItem.FilePath)) { Tag = 1001 };

                    _imagePath = contentItem.FilePath;
                    _image.Frame = new RectangleF(x, 0, 250, _image.Image.CGImage.Height);
                    x = x + (Convert.ToInt32( Bounds.Width));
                    scrollwidth = scrollwidth + Convert.ToInt32( Bounds.Width);
                    _scrollView.ContentSize = new SizeF (scrollwidth,150);
                    _scrollView.Add (_image);                   

                    if (setRowHeight) {
                        rowHeight += _image.Image.CGImage.Height + 10;
                        setRowHeight = false;
                    }

                    // ================
                    var doubletap = new UITapGestureRecognizer();
                    doubletap.NumberOfTapsRequired = 1; // single tap
                    doubletap.AddTarget(this, new MonoTouch.ObjCRuntime.Selector("DoubleTapSelector"));
                    _image.AddGestureRecognizer(doubletap); // detect when the scrollView is tapped
                    _image.UserInteractionEnabled = true;

                    // =================
                }
            }

        }


    [MonoTouch.Foundation.Export("DoubleTapSelector")]
    public void OnDoubleTap(UIGestureRecognizer sender)
    {
        FullImageViewControler fullImageViewController = new FullImageViewControler(_imagePath);
        UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(fullImageViewController, true, null);
    }

0 个答案:

没有答案