PSTGridLayoutSection.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // PSTGridLayoutSection.h
  3. // PSPDFKit
  4. //
  5. // Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
  6. //
  7. #import <UIKit/UIKit.h>
  8. @class PSTGridLayoutInfo, PSTGridLayoutRow, PSTGridLayoutItem;
  9. @interface PSTGridLayoutSection : NSObject
  10. @property (nonatomic, strong, readonly) NSArray *items;
  11. @property (nonatomic, strong, readonly) NSArray *rows;
  12. // fast path for equal-size items
  13. @property (nonatomic, assign) BOOL fixedItemSize;
  14. @property (nonatomic, assign) CGSize itemSize;
  15. // depending on fixedItemSize, this either is a _ivar or queries items.
  16. @property (nonatomic, assign) NSInteger itemsCount;
  17. @property (nonatomic, assign) CGFloat verticalInterstice;
  18. @property (nonatomic, assign) CGFloat horizontalInterstice;
  19. @property (nonatomic, assign) UIEdgeInsets sectionMargins;
  20. @property (nonatomic, assign) CGRect frame;
  21. @property (nonatomic, assign) CGRect headerFrame;
  22. @property (nonatomic, assign) CGRect footerFrame;
  23. @property (nonatomic, assign) CGFloat headerDimension;
  24. @property (nonatomic, assign) CGFloat footerDimension;
  25. @property (nonatomic, unsafe_unretained) PSTGridLayoutInfo *layoutInfo;
  26. @property (nonatomic, strong) NSDictionary *rowAlignmentOptions;
  27. @property (nonatomic, assign, readonly) CGFloat otherMargin;
  28. @property (nonatomic, assign, readonly) CGFloat beginMargin;
  29. @property (nonatomic, assign, readonly) CGFloat endMargin;
  30. @property (nonatomic, assign, readonly) CGFloat actualGap;
  31. @property (nonatomic, assign, readonly) CGFloat lastRowBeginMargin;
  32. @property (nonatomic, assign, readonly) CGFloat lastRowEndMargin;
  33. @property (nonatomic, assign, readonly) CGFloat lastRowActualGap;
  34. @property (nonatomic, assign, readonly) BOOL lastRowIncomplete;
  35. @property (nonatomic, assign, readonly) NSInteger itemsByRowCount;
  36. @property (nonatomic, assign, readonly) NSInteger indexOfImcompleteRow; // typo as of iOS6B3
  37. //- (PSTGridLayoutSection *)copyFromLayoutInfo:(PSTGridLayoutInfo *)layoutInfo;
  38. // Faster variant of invalidate/compute
  39. - (void)recomputeFromIndex:(NSInteger)index;
  40. // Invalidate layout. Destroys rows.
  41. - (void)invalidate;
  42. // Compute layout. Creates rows.
  43. - (void)computeLayout;
  44. - (PSTGridLayoutItem *)addItem;
  45. - (PSTGridLayoutRow *)addRow;
  46. // Copy snapshot of current object
  47. - (PSTGridLayoutSection *)snapshot;
  48. @end