如何在iOS中更改collectionView的大小

如何在iOS中更改collectionView的大小,ios,xamarin.ios,uicollectionview,Ios,Xamarin.ios,Uicollectionview,我不熟悉iOS和Xamarin。我已经创建了CollectionView,其中包含主框架的完整宽度和高度。现在我想用150Height和fullWidth将CollectionView大小更改为水平滚动的父级。我试图更改代码,但它不起作用 全屏收集视图: UICollectionViewDataSource source; UICollectionViewFlowLayout layout; UICollectionView collectionView;

我不熟悉iOS和Xamarin。我已经创建了
CollectionView
,其中包含主框架的完整
宽度
高度
。现在我想用
150
Height
和full
Width
将CollectionView大小更改为水平滚动的父级。我试图更改代码,但它不起作用

全屏收集视图:

 UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;
        UICollectionView collectionView;

    protected ViewController(IntPtr handle) : base(handle)
    {
        layout = new UICollectionViewFlowLayout
        {
            SectionInset = new UIEdgeInsets(20, 5, 5, 5),
            MinimumInteritemSpacing = 5,
            MinimumLineSpacing = 5,
            ItemSize = new SizeF(100, 100),


        };

        collectionView = new UICollectionView(UIScreen.MainScreen.Bounds, layout);
        collectionView.ContentSize = new CGSize(View.Frame.Size.Width, View.Frame.Size.Height);
        collectionView.BackgroundColor = UIColor.White;
        source = new UICollectionViewDataSource();

        collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
        collectionView.Source = source;
    }
UICollectionView collectionView;
        UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;



        protected ViewController(IntPtr handle) : base(handle)
        {
            layout = new UICollectionViewFlowLayout
            {
                SectionInset = new UIEdgeInsets(20, 10, 5, 5),
                MinimumInteritemSpacing = 5,
                MinimumLineSpacing = 5,
                ItemSize = new SizeF(120, 130),
                ScrollDirection = UICollectionViewScrollDirection.Horizontal
            };

            UIView topcontainer = new UIView();

            topcontainer.Frame = new CGRect(0f, 0f, View.Frame.Width, 150f);

            View.AddSubview(topcontainer);

            collectionView = new UICollectionView(topcontainer.Bounds, layout);
            collectionView.ContentSize = new CGSize(topcontainer.Frame.Size.Width, topcontainer.Frame.Size.Height);
            collectionView.CollectionViewLayout = layout;
            collectionView.BackgroundColor = UIColor.White;
            source = new UICollectionViewDataSource();

            collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
            collectionView.Source = source;

            topcontainer.AddSubview(collectionView);
        }
输出:

我希望:

 UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;
        UICollectionView collectionView;

    protected ViewController(IntPtr handle) : base(handle)
    {
        layout = new UICollectionViewFlowLayout
        {
            SectionInset = new UIEdgeInsets(20, 5, 5, 5),
            MinimumInteritemSpacing = 5,
            MinimumLineSpacing = 5,
            ItemSize = new SizeF(100, 100),


        };

        collectionView = new UICollectionView(UIScreen.MainScreen.Bounds, layout);
        collectionView.ContentSize = new CGSize(View.Frame.Size.Width, View.Frame.Size.Height);
        collectionView.BackgroundColor = UIColor.White;
        source = new UICollectionViewDataSource();

        collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
        collectionView.Source = source;
    }
UICollectionView collectionView;
        UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;



        protected ViewController(IntPtr handle) : base(handle)
        {
            layout = new UICollectionViewFlowLayout
            {
                SectionInset = new UIEdgeInsets(20, 10, 5, 5),
                MinimumInteritemSpacing = 5,
                MinimumLineSpacing = 5,
                ItemSize = new SizeF(120, 130),
                ScrollDirection = UICollectionViewScrollDirection.Horizontal
            };

            UIView topcontainer = new UIView();

            topcontainer.Frame = new CGRect(0f, 0f, View.Frame.Width, 150f);

            View.AddSubview(topcontainer);

            collectionView = new UICollectionView(topcontainer.Bounds, layout);
            collectionView.ContentSize = new CGSize(topcontainer.Frame.Size.Width, topcontainer.Frame.Size.Height);
            collectionView.CollectionViewLayout = layout;
            collectionView.BackgroundColor = UIColor.White;
            source = new UICollectionViewDataSource();

            collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
            collectionView.Source = source;

            topcontainer.AddSubview(collectionView);
        }
宽度=父宽度

高度=150

所以我把代码改成这个

layout = new UICollectionViewFlowLayout
            {
                SectionInset = new UIEdgeInsets(20, 5, 5, 5),
                MinimumInteritemSpacing = 5,
                MinimumLineSpacing = 5,
                ItemSize = new SizeF(100, 100),


            };

            collectionView = new UICollectionView(UIScreen.MainScreen.Bounds, layout);
            collectionView.ContentSize = new CGSize(View.Frame.Size.Width, 150);
            collectionView.BackgroundColor = UIColor.White;
            source = new UICollectionViewDataSource();

            collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
            collectionView.Source = source;
但它也可以全屏显示


感谢您的帮助。

最后,我创建了一个
视图
,并将
集合视图
添加为子视图,最后,它以全
宽度
150高度
正常工作

工作代码:

 UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;
        UICollectionView collectionView;

    protected ViewController(IntPtr handle) : base(handle)
    {
        layout = new UICollectionViewFlowLayout
        {
            SectionInset = new UIEdgeInsets(20, 5, 5, 5),
            MinimumInteritemSpacing = 5,
            MinimumLineSpacing = 5,
            ItemSize = new SizeF(100, 100),


        };

        collectionView = new UICollectionView(UIScreen.MainScreen.Bounds, layout);
        collectionView.ContentSize = new CGSize(View.Frame.Size.Width, View.Frame.Size.Height);
        collectionView.BackgroundColor = UIColor.White;
        source = new UICollectionViewDataSource();

        collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
        collectionView.Source = source;
    }
UICollectionView collectionView;
        UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;



        protected ViewController(IntPtr handle) : base(handle)
        {
            layout = new UICollectionViewFlowLayout
            {
                SectionInset = new UIEdgeInsets(20, 10, 5, 5),
                MinimumInteritemSpacing = 5,
                MinimumLineSpacing = 5,
                ItemSize = new SizeF(120, 130),
                ScrollDirection = UICollectionViewScrollDirection.Horizontal
            };

            UIView topcontainer = new UIView();

            topcontainer.Frame = new CGRect(0f, 0f, View.Frame.Width, 150f);

            View.AddSubview(topcontainer);

            collectionView = new UICollectionView(topcontainer.Bounds, layout);
            collectionView.ContentSize = new CGSize(topcontainer.Frame.Size.Width, topcontainer.Frame.Size.Height);
            collectionView.CollectionViewLayout = layout;
            collectionView.BackgroundColor = UIColor.White;
            source = new UICollectionViewDataSource();

            collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
            collectionView.Source = source;

            topcontainer.AddSubview(collectionView);
        }
输出:

 UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;
        UICollectionView collectionView;

    protected ViewController(IntPtr handle) : base(handle)
    {
        layout = new UICollectionViewFlowLayout
        {
            SectionInset = new UIEdgeInsets(20, 5, 5, 5),
            MinimumInteritemSpacing = 5,
            MinimumLineSpacing = 5,
            ItemSize = new SizeF(100, 100),


        };

        collectionView = new UICollectionView(UIScreen.MainScreen.Bounds, layout);
        collectionView.ContentSize = new CGSize(View.Frame.Size.Width, View.Frame.Size.Height);
        collectionView.BackgroundColor = UIColor.White;
        source = new UICollectionViewDataSource();

        collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
        collectionView.Source = source;
    }
UICollectionView collectionView;
        UICollectionViewDataSource source;
        UICollectionViewFlowLayout layout;



        protected ViewController(IntPtr handle) : base(handle)
        {
            layout = new UICollectionViewFlowLayout
            {
                SectionInset = new UIEdgeInsets(20, 10, 5, 5),
                MinimumInteritemSpacing = 5,
                MinimumLineSpacing = 5,
                ItemSize = new SizeF(120, 130),
                ScrollDirection = UICollectionViewScrollDirection.Horizontal
            };

            UIView topcontainer = new UIView();

            topcontainer.Frame = new CGRect(0f, 0f, View.Frame.Width, 150f);

            View.AddSubview(topcontainer);

            collectionView = new UICollectionView(topcontainer.Bounds, layout);
            collectionView.ContentSize = new CGSize(topcontainer.Frame.Size.Width, topcontainer.Frame.Size.Height);
            collectionView.CollectionViewLayout = layout;
            collectionView.BackgroundColor = UIColor.White;
            source = new UICollectionViewDataSource();

            collectionView.RegisterClassForCell(typeof(TextCell), TextCell.CellId);
            collectionView.Source = source;

            topcontainer.AddSubview(collectionView);
        }