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