IGLDropDownMenu.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // IGLDropDownMenu.h
  3. // IGLDropDownMenuDemo
  4. //
  5. // Created by Galvin Li on 8/30/14.
  6. // Copyright (c) 2014 Galvin Li. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "IGLDropDownItem.h"
  10. @class IGLDropDownMenu;
  11. typedef NS_ENUM(NSUInteger, IGLDropDownMenuRotate) {
  12. IGLDropDownMenuRotateNone,
  13. IGLDropDownMenuRotateLeft,
  14. IGLDropDownMenuRotateRight,
  15. IGLDropDownMenuRotateRandom
  16. };
  17. typedef NS_ENUM(NSUInteger, IGLDropDownMenuType) {
  18. IGLDropDownMenuTypeNormal,
  19. IGLDropDownMenuTypeStack,
  20. IGLDropDownMenuTypeSlidingInBoth,
  21. IGLDropDownMenuTypeSlidingInFromLeft,
  22. IGLDropDownMenuTypeSlidingInFromRight
  23. };
  24. typedef NS_ENUM(NSUInteger, IGLDropDownMenuDirection) {
  25. IGLDropDownMenuDirectionDown,
  26. IGLDropDownMenuDirectionUp,
  27. };
  28. @protocol IGLDropDownMenuDelegate <NSObject>
  29. - (void)dropDownMenu:(IGLDropDownMenu*)dropDownMenu selectedItemAtIndex:(NSInteger)index;
  30. @end
  31. @interface IGLDropDownMenu : UIControl
  32. @property (nonatomic, strong, readonly) IGLDropDownItem *menuButton;
  33. @property (nonatomic, copy) NSString* menuText;
  34. @property (nonatomic, strong) id object;
  35. @property (nonatomic, strong) UIImage *menuIconImage;
  36. @property (nonatomic, copy) NSArray* dropDownItems;
  37. @property (nonatomic, assign) CGSize itemSize;
  38. @property (nonatomic, assign, readonly) NSInteger selectedIndex;
  39. @property (nonatomic, assign) CGFloat paddingLeft;
  40. @property (nonatomic, assign) CGFloat animationDuration;
  41. @property (nonatomic, assign) UIViewAnimationOptions animationOption;
  42. @property (nonatomic, assign) CGFloat itemAnimationDelay;
  43. @property (nonatomic, assign) IGLDropDownMenuRotate rotate;
  44. @property (nonatomic, assign) IGLDropDownMenuType type;
  45. @property (nonatomic, assign) IGLDropDownMenuDirection direction;
  46. @property (nonatomic, assign) CGFloat slidingInOffset;
  47. @property (nonatomic, assign) CGFloat gutterY;
  48. @property (nonatomic, assign) CGFloat alphaOnFold;
  49. @property (nonatomic, assign, getter = isExpanding) BOOL expanding;
  50. @property (nonatomic, assign, getter = shouldFlipWhenToggleView) BOOL flipWhenToggleView;
  51. @property (nonatomic, assign, getter = shouldUseSpringAnimation) BOOL useSpringAnimation;
  52. @property (nonatomic, assign) id<IGLDropDownMenuDelegate> delegate;
  53. - (void)reloadView;
  54. - (void)resetParams;
  55. - (void)selectItemAtIndex:(NSUInteger)index;
  56. - (void)addSelectedItemChangeBlock:(void (^)(NSInteger selectedIndex))block;
  57. @end