HWBookmarkHeader.m 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. //
  2. // HWBookmarkHeader.m
  3. // 双子星云手机
  4. //
  5. // Created by 余衡武 on 2022/3/24.
  6. //
  7. #import "HWBookmarkHeader.h"
  8. @interface HWBookmarkHeader ()
  9. @property (nonatomic,strong) UILabel *titleLabel;
  10. @property (nonatomic,strong) UIButton *expandBtn;
  11. @property (nonatomic,strong) UIView *lineView;
  12. @property (nonatomic,strong) UIButton *deleteBtn;
  13. @end
  14. @implementation HWBookmarkHeader
  15. - (instancetype)initWithFrame:(CGRect)frame
  16. {
  17. self = [super initWithFrame:frame];
  18. if (self)
  19. {
  20. [self drawAnyView];
  21. }
  22. return self;
  23. }
  24. - (void)drawAnyView {
  25. UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W - 30, 50)];
  26. header.backgroundColor = [UIColor hwColor:@"#1C1C1E"];
  27. header.layer.mask = [iTools getCornerRoundWithSelfView:header byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRect:CGRectMake(0, 0, SCREEN_W - 30, 50)];
  28. [self addSubview:header];
  29. UIButton *expandBtn = [UIButton buttonWithType:(UIButtonTypeCustom)];
  30. [expandBtn setImage:[UIImage imageNamed:@"Icon06"] forState:(UIControlStateNormal)];
  31. [expandBtn setImage:[UIImage imageNamed:@"Icon05"] forState:(UIControlStateSelected)];
  32. expandBtn.userInteractionEnabled = NO;
  33. [expandBtn setImageEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
  34. [header addSubview:expandBtn];
  35. self.expandBtn = expandBtn;
  36. [expandBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  37. make.left.mas_equalTo(0);
  38. make.width.mas_equalTo(35);
  39. make.height.mas_equalTo(35);
  40. make.centerY.mas_equalTo(header.mas_centerY);
  41. }];
  42. UILabel *titleLabel = [[UILabel alloc] init];
  43. titleLabel.font = [UIFont systemFontOfSize:15];
  44. titleLabel.numberOfLines = 1;
  45. titleLabel.textColor = HWFFFFFF80Color;
  46. titleLabel.textAlignment = NSTextAlignmentLeft;
  47. [header addSubview:titleLabel];
  48. self.titleLabel = titleLabel;
  49. [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  50. make.left.mas_equalTo(35);
  51. make.right.mas_equalTo(20);
  52. make.centerY.mas_equalTo(header.mas_centerY);
  53. }];
  54. UIView *lineView = [[UIView alloc] init];
  55. lineView.backgroundColor = HWFFFFFF08Color;
  56. [header addSubview:lineView];
  57. self.lineView = lineView;
  58. [lineView mas_makeConstraints:^(MASConstraintMaker *make) {
  59. make.left.mas_equalTo(35);
  60. make.right.mas_equalTo(-35);
  61. make.bottom.mas_equalTo(0);
  62. make.height.mas_equalTo(1);
  63. }];
  64. UIButton *deleteBtn = [UIButton buttonWithType:(UIButtonTypeCustom)];
  65. [deleteBtn setImage:[UIImage imageNamed:@"shanchu_icon"] forState:(UIControlStateNormal)];
  66. [deleteBtn addTarget:self action:@selector(deleteBtnClick:) forControlEvents:(UIControlEventTouchUpInside)];
  67. [deleteBtn setImageEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
  68. [header addSubview:deleteBtn];
  69. self.deleteBtn = deleteBtn;
  70. deleteBtn.hidden = YES;
  71. [deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  72. make.left.mas_equalTo(0);
  73. make.width.mas_equalTo(35);
  74. make.height.mas_equalTo(35);
  75. make.centerY.mas_equalTo(header.mas_centerY);
  76. }];
  77. }
  78. - (void)setNormalModel {
  79. self.deleteBtn.hidden = YES;
  80. [self.expandBtn mas_updateConstraints:^(MASConstraintMaker *make) {
  81. make.left.mas_equalTo(0);
  82. }];
  83. [self.titleLabel mas_updateConstraints:^(MASConstraintMaker *make) {
  84. make.left.mas_equalTo(35);
  85. }];
  86. }
  87. - (void)setDeleteModel {
  88. self.deleteBtn.hidden = NO;
  89. [self.expandBtn mas_updateConstraints:^(MASConstraintMaker *make) {
  90. make.left.mas_equalTo(25);
  91. }];
  92. [self.titleLabel mas_updateConstraints:^(MASConstraintMaker *make) {
  93. make.left.mas_equalTo(60);
  94. }];
  95. }
  96. - (void)setFolderModel:(HWFolderModel *)folderModel {
  97. _folderModel = folderModel;
  98. [self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(headerDidClick:)]];
  99. self.titleLabel.text = folderModel.name;
  100. self.expandBtn.selected = folderModel.isExpand;
  101. // 编辑模式
  102. if (folderModel.isEditing) {
  103. [self setDeleteModel];
  104. }else {
  105. [self setNormalModel];
  106. }
  107. if (folderModel.isExpand && folderModel.bookmarkArray.count != 0) {
  108. self.lineView.hidden = NO;
  109. }else {
  110. self.layer.mask = [iTools getCornerRoundWithSelfView:self byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRect:CGRectMake(0, 0, SCREEN_W - 30, 50)];
  111. self.lineView.hidden = YES;
  112. }
  113. }
  114. - (void)deleteBtnClick:(UIButton *)btn {
  115. HLog(@"删除");
  116. if ([_delegate respondsToSelector:@selector(bookmarkHeaderDidClickDeleteBtn:)]) {
  117. [_delegate bookmarkHeaderDidClickDeleteBtn:self.folderModel];
  118. }
  119. }
  120. - (void)headerDidClick:(UITapGestureRecognizer *)tap {
  121. self.expandBtn.selected = !self.expandBtn.selected;
  122. self.folderModel.isExpand = self.expandBtn.selected;
  123. if ([_delegate respondsToSelector:@selector(bookmarkHeaderDidClickExpandBtn:)]) {
  124. [_delegate bookmarkHeaderDidClickExpandBtn:self.folderModel];
  125. }
  126. }
  127. @end