JCHATAlertToSendImage.m 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // JCHATAlertToSendImage.m
  3. // JChat
  4. //
  5. // Created by oshumini on 15/12/9.
  6. // Copyright © 2015年 HXHG. All rights reserved.
  7. //
  8. #import "JCHATAlertToSendImage.h"
  9. #import "Masonry.h"
  10. #import "JChatConstants.h"
  11. #import "AppDelegate.h"
  12. @implementation JCHATAlertToSendImage
  13. + (JCHATAlertToSendImage *)shareInstance {
  14. static JCHATAlertToSendImage *alertSendImage = nil;
  15. static dispatch_once_t onceToken;
  16. dispatch_once(&onceToken, ^{
  17. alertSendImage = [[JCHATAlertToSendImage alloc] init];
  18. });
  19. return alertSendImage;
  20. }
  21. - (id)init {
  22. self = [super init];
  23. if (self) {
  24. }
  25. return self;
  26. }
  27. - (void)showInViewWith:(UIImage *) image{
  28. _preImage = image;
  29. self.alertView = [UIView new];
  30. self.alertView.backgroundColor = [UIColor colorWithRed:0.3 green:0.3 blue:0.3 alpha:0.5];
  31. AppDelegate *appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;
  32. UIWindow *myWindow = [UIApplication sharedApplication].windows.lastObject;
  33. myWindow.windowLevel = UIWindowLevelAlert;
  34. [myWindow addSubview:_alertView];
  35. [myWindow makeKeyAndVisible];
  36. [self.alertView mas_makeConstraints:^(MASConstraintMaker *make) {
  37. make.right.mas_equalTo(myWindow);
  38. make.top.mas_equalTo(myWindow).with.offset(0);
  39. make.left.mas_equalTo(myWindow);
  40. make.bottom.mas_equalTo(myWindow);
  41. }];
  42. UIView *alertHub = [UIView new];
  43. alertHub.backgroundColor = [UIColor whiteColor];
  44. alertHub.layer.cornerRadius = 5;
  45. alertHub.layer.masksToBounds = YES;
  46. [self.alertView addSubview:alertHub];
  47. [alertHub mas_makeConstraints:^(MASConstraintMaker *make) {
  48. make.center.mas_equalTo(self.alertView);
  49. make.size.mas_equalTo(CGSizeMake(280, 235));
  50. }];
  51. UIImageView *imgView = [UIImageView new];
  52. imgView.contentMode = UIViewContentModeScaleAspectFit;
  53. [alertHub addSubview:imgView];
  54. imgView.image = image;
  55. [imgView mas_makeConstraints:^(MASConstraintMaker *make) {
  56. make.top.mas_equalTo(alertHub.mas_top).with.offset(15);
  57. make.left.mas_equalTo(alertHub.mas_left).with.offset(15);
  58. make.right.mas_equalTo(alertHub.mas_right).with.offset(-15);
  59. make.bottom.mas_equalTo(alertHub.mas_bottom).with.offset(-65);
  60. }];
  61. UIButton *leftBtn = [UIButton new];
  62. leftBtn.backgroundColor = [UIColor whiteColor];
  63. [leftBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  64. leftBtn.layer.borderWidth = 0.5;
  65. leftBtn.layer.borderColor = [UIColor grayColor].CGColor;
  66. [alertHub addSubview:leftBtn];
  67. [leftBtn setTitle:YZMsg(@"取消") forState:UIControlStateNormal];
  68. [leftBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  69. make.height.mas_equalTo(50);
  70. make.width.mas_equalTo(140);
  71. make.left.mas_equalTo(alertHub.mas_left).with.offset(-1);
  72. make.bottom.mas_equalTo(alertHub.mas_bottom).with.offset(0);
  73. }];
  74. [leftBtn addTarget:self action:@selector(clickCancel) forControlEvents:UIControlEventTouchUpInside];
  75. UIButton *rightBtn = [UIButton new];
  76. [rightBtn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
  77. rightBtn.backgroundColor = [UIColor whiteColor];
  78. rightBtn.layer.borderWidth = 0.5;
  79. rightBtn.layer.borderColor = [UIColor grayColor].CGColor;
  80. [alertHub addSubview:rightBtn];
  81. [rightBtn setTitle:YZMsg(@"确定") forState:UIControlStateNormal];
  82. [rightBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  83. make.height.mas_equalTo(50);
  84. make.width.mas_equalTo(142);
  85. make.right.mas_equalTo(alertHub.mas_right).with.offset(0.5);
  86. make.bottom.mas_equalTo(alertHub.mas_bottom).with.offset(0);
  87. }];
  88. [rightBtn addTarget:self action:@selector(clickSend) forControlEvents:UIControlEventTouchUpInside];
  89. }
  90. - (void)clickCancel {
  91. [[JCHATAlertToSendImage shareInstance] removeAlertView];
  92. }
  93. - (void)clickSend {
  94. [[NSNotificationCenter defaultCenter] postNotificationName:kAlertToSendImage object:_preImage];
  95. [[JCHATAlertToSendImage shareInstance] removeAlertView];
  96. }
  97. - (void)removeAlertView {//rename
  98. [self.alertView removeFromSuperview];
  99. self.alertView = nil;
  100. }
  101. @end