summaryrefslogtreecommitdiff
path: root/CocoaSharp/UIKit/Protocols/Delegates/UICollectionViewDelegateFlowLayout.cs
blob: 5664a7f7fef7388d44f895b813a8815937ec705f (plain)
1
using ObjectiveC;
using System;
using SharpSwift.Attributes;
using System.Collections.Generic;
using Foundation;
using CoreGraphics;

namespace UIKit
{
    /// <summary>
    /// The UICollectionViewDelegateFlowLayout protocol defines methods that let you coordinate with a UICollectionViewFlowLayout object to implement a grid-based layout. The methods of this protocol define the size of items and the spacing between items in the grid.
    /// </summary>
    /// <see cref="https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UICollectionViewDelegateFlowLayout_protocol/index.html#//apple_ref/occ/intf/UICollectionViewDelegateFlowLayout"/>
    [iOSVersion(6)]
    public interface UICollectionViewDelegateFlowLayout//: NSObjectProtocol, UICollectionViewDelegate, UIScrollViewDelegate
    {
        /// <summary>
        /// Asks the delegate for the size of the specified item’s cell.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="sizeForItemAtIndexPath">The index path of the item.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        CGSize CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath sizeForItemAtIndexPath);
        
        /// <summary>
        /// Asks the delegate for the margins to apply to content in the specified section.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="insetForSectionAtIndex">The index number of the section whose insets are needed.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        UIEdgeInsets CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, int insetForSectionAtIndex);
        
        /// <summary>
        /// Asks the delegate for the spacing between successive rows or columns of a section.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="minimumLineSpacingForSectionAtIndex">The index number of the section whose line spacing is needed.</param>
        /// <param name="NAME_YOUR_PARAMS">DO NOT USE THIS PARAMETER - Instead make sure to name the parameters you're using.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        //[IgnoreParameter("NAME_YOUR_PARAMS")]
        CGFloat CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, int minimumLineSpacingForSectionAtIndex, bool NAME_YOUR_PARAMS = false);
        
        /// <summary>
        /// Asks the delegate for the spacing between successive items in the rows or columns of a section.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="minimumInteritemSpacingForSectionAtIndex">The index number of the section whose inter-item spacing is needed.</param>
        /// <param name="NAME_YOUR_PARAMS">DO NOT USE THIS PARAMETER - Instead make sure to name the parameters you're using.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        //[IgnoreParameter("NAME_YOUR_PARAMS")]
        CGFloat CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, int minimumInteritemSpacingForSectionAtIndex, int NAME_YOUR_PARAMS = 0);
        
        /// <summary>
        /// Asks the delegate for the size of the header view in the specified section.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="referenceSizeForHeaderInSection">The index of the section whose header size is being requested.</param>
        /// <param name="NAME_YOUR_PARAMS">DO NOT USE THIS PARAMETER - Instead make sure to name the parameters you're using.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        //[IgnoreParameter("NAME_YOUR_PARAMS")]
        CGSize CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, int referenceSizeForHeaderInSection, string NAME_YOUR_PARAMS = "");
        
        /// <summary>
        /// Asks the delegate for the size of the footer view in the specified section.
        /// </summary>
        /// <param name="collectionView">The collection view object displaying the flow layout.</param>
        /// <param name="layout">The layout object requesting the information.</param>
        /// <param name="referenceSizeForFooterInSection">The index of the section whose footer size is being requested.</param>
        /// <param name="NAME_YOUR_PARAMS">DO NOT USE THIS PARAMETER - Instead make sure to name the parameters you're using.</param>
        //[iOSVersion(6)]
        //[Export("collectionView")]
        //[Optional]
        //[IgnoreParameter("NAME_YOUR_PARAMS")]
        CGSize CollectionView(UICollectionView collectionView, UICollectionViewLayout layout, int referenceSizeForFooterInSection, double NAME_YOUR_PARAMS = 4.2);
    }
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback