0
我正在創建具有多個標籤大小的集合視圖。這些標籤都具有相同的高度,但寬度會動態變化。左對齊UICollectionView單元格當它在Xamarin.ios中有一個項目
這是我收集視圖佈局的代碼:
EstimatedItemSize = new CGSize(50f, 35f);
MinimumInteritemSpacing = 10f;
MinimumLineSpacing = 10f;
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect(CGRect rect)
{
var attributes = base.LayoutAttributesForElementsInRect(rect);
for (var i = 1; i < attributes.Length; ++i)
{
var currentLayoutAttributes = attributes[i];
var previousLayoutAttributes = attributes[i - 1];
var maximumSpacing = MinimumInteritemSpacing;
var previousLayoutEndPoint = previousLayoutAttributes.Frame.Right;
if (previousLayoutEndPoint + maximumSpacing + currentLayoutAttributes.Frame.Size.Width >= CollectionViewContentSize.Width)
{
continue;
}
var frame = currentLayoutAttributes.Frame;
frame.X = previousLayoutEndPoint + maximumSpacing;
currentLayoutAttributes.Frame = frame;
}
return attributes;
}
我的問題是:當我有我的集合中的一個項目來查看它的顯示在屏幕中央,並LayoutAttributesForElementsInRect
方法不會被調用。但我需要在左側顯示它。
如果我將EstimatedItemSize = new CGSize(50f, 35f)
更改爲ItemSize = new CGSize(50f, 35f)
它會正確顯示,但寬度不會動態更改。
我有發表答覆。或者你可以使用一些其他的第三方庫:https://github.com/mokagio/UICollectionViewLeftAlignedLayout。 –