ChatLongPressMenuView.m 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. //
  2. // ChatLongPressMenuView.m
  3. // AIIM
  4. //
  5. // Created by qitewei on 2025/5/7.
  6. //
  7. #import "ChatLongPressMenuView.h"
  8. @interface ChatLongPressMenuView()
  9. @property (nonatomic, copy) NSArray * titles;
  10. @end
  11. @implementation ChatLongPressMenuView
  12. - (instancetype)initWithFrame:(CGRect)frame{
  13. if (self = [super initWithFrame:frame]) {
  14. self.backgroundColor = UIColor.whiteColor;
  15. [self configUI];
  16. }
  17. return self;
  18. }
  19. - (instancetype)initWithMessageType:(NSInteger)type isSender:(BOOL)isSender{
  20. NSMutableArray * tempArray = [NSMutableArray array];
  21. if (isSender) {
  22. if (type == 0) {
  23. [tempArray addObjectsFromArray:@[NSLocalizedString(@"cellact-copy", @""),
  24. NSLocalizedString(@"cellact-deleat", @""),
  25. NSLocalizedString(@"cellact-zhuanfa", @""),
  26. NSLocalizedString(@"cellact-shouchang", @""),
  27. NSLocalizedString(@"cellact-chehui", @""),
  28. NSLocalizedString(@"cellact-duoxuan", @""),
  29. NSLocalizedString(@"cellact-yinyong", @"")]];
  30. }else{
  31. [tempArray addObjectsFromArray:@[NSLocalizedString(@"cellact-deleat", @""),
  32. NSLocalizedString(@"cellact-zhuanfa", @""),
  33. NSLocalizedString(@"cellact-shouchang", @""),
  34. NSLocalizedString(@"cellact-chehui", @""),
  35. NSLocalizedString(@"cellact-duoxuan", @""),
  36. NSLocalizedString(@"cellact-yinyong", @"")]];
  37. }
  38. }else{
  39. if (type == 0) {
  40. [tempArray addObjectsFromArray:@[NSLocalizedString(@"cellact-copy", @""),
  41. NSLocalizedString(@"cellact-deleat", @""),
  42. NSLocalizedString(@"cellact-zhuanfa", @""),
  43. NSLocalizedString(@"cellact-shouchang", @""),
  44. NSLocalizedString(@"cellact-duoxuan", @""),
  45. NSLocalizedString(@"cellact-yinyong", @"")]];
  46. }else{
  47. [tempArray addObjectsFromArray:@[NSLocalizedString(@"cellact-save", @""),
  48. NSLocalizedString(@"cellact-deleat", @""),
  49. NSLocalizedString(@"cellact-zhuanfa", @""),
  50. NSLocalizedString(@"cellact-shouchang", @""),
  51. NSLocalizedString(@"cellact-duoxuan", @""),
  52. NSLocalizedString(@"cellact-yinyong", @"")]];
  53. }
  54. }
  55. _titles = tempArray.copy;
  56. tempArray = nil;
  57. CGRect rect = CGRectMake(0, 0, 290, 110);
  58. if (self = [super initWithFrame:rect]) {
  59. self.backgroundColor = UIColor.whiteColor;
  60. [self configUI];
  61. }
  62. return self;
  63. }
  64. - (void)configUI{
  65. NSMutableArray * buttonArray = [NSMutableArray array];
  66. NSMutableArray * button2Array = [NSMutableArray array];
  67. for (NSString * title in self.titles) {
  68. UIButton * item = [UIButton buttonWithType:UIButtonTypeCustom];
  69. item.tag = [self.titles indexOfObject:title]+3000;
  70. [item setTitle:title forState:UIControlStateNormal];
  71. [item setTitleColor:UIColor.blackColor forState:UIControlStateNormal];
  72. item.titleLabel.font = SYSFONT(16);
  73. [item addTarget:self action:@selector(menuButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
  74. [self addSubview:item];
  75. if ([self.titles indexOfObject:title] <= 3) {
  76. [buttonArray addObject:item];
  77. [item mas_makeConstraints:^(MASConstraintMaker *make) {
  78. make.height.mas_equalTo(40);
  79. make.top.mas_equalTo(10);
  80. }];
  81. }else{
  82. [button2Array addObject:item];
  83. [item mas_makeConstraints:^(MASConstraintMaker *make) {
  84. make.height.mas_equalTo(40);
  85. make.top.mas_equalTo(60);
  86. }];
  87. if ([self.titles indexOfObject:title] == self.titles.count - 1 && button2Array.count < 4) {
  88. for (NSInteger i = self.titles.count; i <= 7; i++) {
  89. UIView * place = [UIView new];
  90. place.backgroundColor = UIColor.whiteColor;
  91. [self addSubview:place];
  92. [button2Array addObject:place];
  93. [place mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.height.mas_equalTo(40);
  95. make.top.mas_equalTo(60);
  96. }];
  97. }
  98. }
  99. }
  100. }
  101. [buttonArray mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:30 leadSpacing:20 tailSpacing:20];
  102. [button2Array mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:30 leadSpacing:20 tailSpacing:20];
  103. }
  104. #pragma mark event
  105. - (void)menuButtonClicked:(UIButton *)button{
  106. NSInteger index = 0;
  107. NSString * titleString = self.titles[button.tag-3000];
  108. if ([titleString isEqualToString:NSLocalizedString(@"cellact-copy", @"")]) {
  109. index = 0;
  110. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-deleat", @"")]) {
  111. index = 1;
  112. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-zhuanfa", @"")]) {
  113. index = 2;
  114. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-shouchang", @"")]) {
  115. index = 3;
  116. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-chehui", @"")]) {
  117. index = 4;
  118. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-duoxuan", @"")]) {
  119. index = 5;
  120. }else if ([titleString isEqualToString:NSLocalizedString(@"cellact-yinyong", @"")]) {
  121. index = 6;
  122. }
  123. else if ([titleString isEqualToString:NSLocalizedString(@"cellact-save", @"")]) {
  124. index = 7;
  125. }
  126. if (self.indexOfMenuClicked) {
  127. self.indexOfMenuClicked(index);
  128. }
  129. }
  130. @end