private static void AddYmlItems(this Db db, List <DbItem> items, List <DbTemplate> templates, bool merge = false)
 {
     if (items != null && items.Count > 0)
     {
         db.AddRange(LayoutItems.Get(items), merge);
         db.AddRange(SystemItems.Get(items), merge);
         db.AddRange(MediaItems.Get(items), merge);
         db.AddRange(ContentItems.Get(items, templates), merge);
     }
 }
Exemple #2
0
        private void prepareLayoutForItems(List <CollectionDataSourceItem> dataSourceItems)
        {
            DataSourceItems = dataSourceItems;

            LayoutItems.RemoveAll((obj) =>
            {
                return(true);
            });

            mOffset.X = ContentEdgeInsets.Left;
            mOffset.Y = ContentEdgeInsets.Top;

            NSIndexPath indexPath;

            for (var i = 0; i < dataSourceItems.Count; i++)
            {
                var item = dataSourceItems[i];
                indexPath = NSIndexPath.FromItemSection(item: i, section: 0);
                LayoutItems.Add(new Tuple <UICollectionViewLayoutAttributes, NSIndexPath>(LayoutAttributesForItem(indexPath), indexPath));

                mOffset.X += InterimSpace;
                mOffset.X += item.Width == null ? ItemSize.Width : item.Width.Value;

                mOffset.Y += InterimSpace;
                mOffset.Y += item.Height == null ? ItemSize.Height : item.Height.Value;
            }

            mOffset.Y += ContentEdgeInsets.Right - InterimSpace;
            mOffset.Y += ContentEdgeInsets.Bottom - InterimSpace;

            if (0 < ItemSize.Width && 0 < ItemSize.Height)
            {
                ContentSize = new CGSize(Offset.X, Offset.Y);
            }
            else if (ScrollDirection == UICollectionViewScrollDirection.Vertical)
            {
                ContentSize = new CGSize(CollectionView.Bounds.Width, Offset.Y);
            }
            else
            {
                ContentSize = new CGSize(Offset.X, CollectionView.Bounds.Height);
            }
        }