STModal.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //
  2. // STModal.h
  3. // STModalDemo
  4. //
  5. // Created by zhenlintie on 15/6/5.
  6. // Copyright (c) 2015年 sTeven. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. /**
  10. * @discussion 主视图显示位置
  11. */
  12. typedef NS_ENUM(NSUInteger, STModelPositionMode) {
  13. STModelPositionCenter,
  14. STModelPositionCenterTop,
  15. STModelPositionCenterBottom,
  16. STModelPositionCustom
  17. };
  18. /**
  19. * @discussion 执行的动画块
  20. * @return 动画所需时间
  21. */
  22. typedef CGFloat (^st_modal_animation)();
  23. /**
  24. * @discussion 回调
  25. */
  26. typedef void (^st_modal_block)();
  27. /**
  28. * @discussion 弹出视图控制器
  29. */
  30. @interface STModal : NSObject
  31. + (instancetype)modal;
  32. + (instancetype)modalWithContentView:(UIView *)contentView;
  33. /**
  34. * @discussion 所显示的主视图
  35. */
  36. @property (strong, nonatomic, readonly) UIView *contentView;
  37. /**
  38. * @discussion contentView位置,默认STModelPositionCenter
  39. */
  40. @property (assign, nonatomic) STModelPositionMode positionMode;
  41. /**
  42. * @discussion 自定义位置,只有当position为STModelPositionCustom时生效
  43. */
  44. @property (assign, nonatomic) CGPoint position;
  45. /**
  46. * @discussion 点击contentView外的区域是否执行hide,默认为NO
  47. */
  48. @property (assign, nonatomic) BOOL hideWhenTouchOutside;
  49. /**
  50. * @discussion 当touchOutDismiss为YES时,是否发生动画,默认是YES
  51. */
  52. @property (assign, nonatomic) BOOL animatedHideWhenTouchOutside;
  53. /**
  54. * @discussion 背景是否加蒙版,默认为YES
  55. */
  56. @property (assign, nonatomic) BOOL dimBackgroundWhenShow;
  57. /**
  58. * @discussion 自定义背景蒙版颜色,默认为nil
  59. */
  60. @property (strong, nonatomic) UIColor *dimBackgroundColor;
  61. //// 当不设置执行动画时,且animated为YES,会默认执行一个过渡动画
  62. /**
  63. * @discussion 显示时的动画
  64. */
  65. @property (strong, nonatomic) st_modal_animation showAnimation;
  66. /**
  67. * @discussion 隐藏时的动画
  68. */
  69. @property (strong, nonatomic) st_modal_animation hideAnimation;
  70. /**
  71. * @discussion 显示后/隐藏后回调
  72. */
  73. @property (strong, nonatomic) st_modal_block didShowHandler;
  74. @property (strong, nonatomic) st_modal_block didHideHandler;
  75. /**
  76. * @discussion 显示
  77. */
  78. - (void)show:(BOOL)animated;
  79. /**
  80. * @discussion 显示指定的contentView,若之前已设置,则替换掉。
  81. */
  82. - (void)showContentView:(UIView *)contentView animated:(BOOL)animated;
  83. /**
  84. * @discussion 是否已经显示
  85. */
  86. @property (assign, readonly, nonatomic) BOOL onShow;
  87. /**
  88. * @discussion 隐藏
  89. */
  90. - (void)hide:(BOOL)animated;
  91. @end