STPromptView.m 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // STPromptView.m
  3. // BuguLive
  4. //
  5. // Created by 岳克奎 on 17/3/14.
  6. // Copyright © 2017年 xfg. All rights reserved.
  7. //
  8. #import "STPromptView.h"
  9. @implementation STPromptView
  10. #pragma mark -----------------------------life cycle -----------------------------------
  11. -(instancetype)initWithCoder:(NSCoder *)aDecoder{
  12. if (self = [super initWithCoder:aDecoder]) {
  13. //因没实力化,子控件要在from nib 写
  14. self.backgroundColor = [UIColor whiteColor];
  15. }
  16. return self;
  17. }
  18. -(void)awakeFromNib{
  19. [super awakeFromNib];
  20. [self setSubViews];
  21. }
  22. #pragma mark - 设置subView
  23. -(void)setSubViews{
  24. //剪切
  25. self.promptView.layer.cornerRadius = 3;
  26. self.promptView.layer.masksToBounds = YES;
  27. //颜色调控
  28. _confirmBtn.backgroundColor = [UIColor colorWithRed:255/225.0f green:77/225.0f blue:127/225.0f alpha:1];
  29. //动画加载
  30. self.promptView.layer.transform = CATransform3DMakeScale(0.8f, 0.8f,1.0f);
  31. [UIView animateWithDuration:0.36 animations:^{
  32. self.promptView.layer.transform = CATransform3DMakeScale(1.2f, 1.2f, 1.0f);
  33. } completion:^(BOOL finished) {
  34. self.promptView.layer.transform = CATransform3DMakeScale(1.0f, 1.0f,1.0f);
  35. //事件:整个View 退出
  36. }];
  37. }
  38. #pragma mark ------------------------ event response 事件响应区域 ------------------------
  39. #pragma mark - 确认
  40. - (IBAction)showConfirm:(UIButton *)sender {
  41. sender.userInteractionEnabled = NO;
  42. [UIView animateWithDuration:0.36 animations:^{
  43. self.layer.transform = CATransform3DMakeScale(1.2f, 1.2f, 1);
  44. } completion:^(BOOL finished) {
  45. self.layer.transform = CATransform3DMakeScale(1.0f, 1.0f,1.0f);
  46. sender.userInteractionEnabled = YES;
  47. //事件:整个View 退出
  48. [self showRomoveFromSuperView];
  49. }];
  50. }
  51. #pragma mark -
  52. #pragma mark -
  53. -(UITapGestureRecognizer *)panGestureRecognizer{
  54. if (!_tapGestureRecognizer) {
  55. _tapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapGestureRecognizerClick:)];
  56. _tapGestureRecognizer.delegate = self;
  57. [self addGestureRecognizer:_tapGestureRecognizer];
  58. }
  59. return _tapGestureRecognizer;
  60. }
  61. -(void)tapGestureRecognizerClick:(UITapGestureRecognizer *)tap{
  62. [self showRomoveFromSuperView];
  63. }
  64. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
  65. if (![touch.view isDescendantOfView:_promptView]){
  66. return NO;
  67. }
  68. return YES;
  69. }
  70. #pragma mark - 退出
  71. -(void)showRomoveFromSuperView{
  72. [self removeFromSuperview];
  73. if (_delegate &&[_delegate respondsToSelector:@selector(showBackRemoveSTPromptView)]) {
  74. [_delegate showBackRemoveSTPromptView];
  75. }
  76. }
  77. -(void)setDelegate:(id<STPromptViewDelegate>)delegate{
  78. _delegate = delegate;
  79. }
  80. @end