xamarin.iOS 垂直滚动图像

Posted

技术标签:

【中文标题】xamarin.iOS 垂直滚动图像【英文标题】:xamarin.iOS Vertically scroll through Images 【发布时间】:2016-08-10 14:24:00 【问题描述】:

我正在尝试在 Xamarin.ios 中构建一个 UI,它允许用户垂直滚动图像列表。我不确定最好的方法是什么。我看过使用 UITableViewSource 但是我不确定这是否是最好的方法。

我想要显示的数据并不是真正的表格,它只是一个图像列表。有没有办法将 UITableViewSource 塑造成只显示与屏幕一样宽的图像,从而允许用户向下滚动它们。

或者更好的方法是添加一个 ScrollView 并向其中添加图像,允许用户向下滚动滚动视图?

任何建议或代码示例将不胜感激。

【问题讨论】:

【参考方案1】:

你可以使用 UITableView 来实现你所需要的,这是一个示例。

首先你可以像这样调用示例代码:

public override void ViewDidLoad ()
    
        base.ViewDidLoad ();
        // Perform any additional setup after loading the view, typically from a nib.

        List<string> dataList = new List<string> ();
        for (int i = 0; i < 20; i++) 
            //Make sure all images is already in the Resources folder
            dataList.Add ("test.png");
        

        UITableView myTalbeView = new UITableView ();
        myTalbeView.RowHeight = 80;
        myTalbeView.Frame = UIScreen.MainScreen.Bounds;
        myTalbeView.AllowsSelection = false;//If you don't want any image be selected, use it.
        myTalbeView.SeparatorStyle = UITableViewCellSeparatorStyle.None;//remove the under line
        myTalbeView.Source = new MyTableViewSource (dataList);//set source for tableView
        this.View.AddSubview (myTalbeView);
    

这是 MyTableViewSource.cs:

public class MyTableViewSource : UITableViewSource

    private static string cellReuseID = "MyTalbeCell";
    private List<string> dataList;

    public MyTableViewSource(List<string> _dataList)
    
        this.dataList = _dataList;
    

    public override nint RowsInSection (UITableView tableview, nint section)
    
        return dataList.Count;
    

    public override UITableViewCell GetCell (UITableView tableView, Foundation.NSIndexPath indexPath)
    
        MyTableCell cell = tableView.DequeueReusableCell (cellReuseID) as MyTableCell;
        if (null == cell)
            cell = new MyTableCell (UITableViewCellStyle.Default, cellReuseID);
        cell.ImageName = dataList [indexPath.Row];
        return cell;
    

这是 MyTalbeCell.cs:

public class MyTableCell : UITableViewCell

    private UIImageView imageView;

    private string imageName = "";
    public string ImageName
        get 
            return imageName;
        
        set 
            imageName = value;
            imageView.Image = UIImage.FromFile (imageName);
        
    

    public MyTableCell (UITableViewCellStyle style,string reuseID) : base(style,reuseID)
    
        imageView = new UIImageView ();
        this.AddSubview (imageView);
    

    public override void LayoutSubviews ()
    
        imageView.Frame = this.Bounds;
    

希望对你有帮助。

如果您仍然需要帮助,请在此处留下问题,我会检查后者。

【讨论】:

Alnc 这是您第二次为我的一个问题提供出色的解决方案。通过出色的代码示例清晰简洁的答案。我爱你的工作,谢谢你 欢迎您,希望您喜欢使用 Xamarin 进行开发。

以上是关于xamarin.iOS 垂直滚动图像的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin iOS:滚动视图中的自动布局?

Xamarin IOS - Xamarin IOS 中的轮播视图(图像)

xamarin.ios 使用仅图像代码实现 PageController

如何在 xamarin ios 中使用轮播视图

C# Monotouch/Xamarin.iOS - 可滚动的 UIView

UIScrollView 滚动不工作 Xamarin IOS