Notify_SelectCityHeaderView.m 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //
  2. // Notify_SelectCityHeaderView.m
  3. // LNManager
  4. //
  5. // Created by EchoShacolee on 2017/6/22.
  6. // Copyright © 2017年 lee. All rights reserved.
  7. //
  8. #import "Notify_SelectCityHeaderView.h"
  9. @interface Notify_SelectCityHeaderView ()
  10. {
  11. UIButton *_isAllBtn;//是否展开
  12. UIButton *_selectBtn;
  13. }
  14. @end
  15. @implementation Notify_SelectCityHeaderView
  16. +(instancetype)cellHeaderViewForTableView:(UITableView *)tableView{
  17. Notify_SelectCityHeaderView * headerV = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"Notify_SelectCityHeaderView"];
  18. if (!headerV) {
  19. headerV = [[Notify_SelectCityHeaderView alloc] initWithReuseIdentifier:@"Notify_SelectCityHeaderView"];
  20. NSLog(@"创建了headerView");
  21. }
  22. return headerV;
  23. }
  24. -(instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier{
  25. self = [super initWithReuseIdentifier:reuseIdentifier];
  26. if (self) {
  27. UIImage *image1 = [[UIImage imageNamed:@"ic_squSelect_h"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
  28. UIImage *image2 = [[UIImage imageNamed:@"ic_squSelect"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
  29. UIImage *image3 = [[UIImage imageNamed:@"fold"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
  30. _isAllBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  31. [_isAllBtn setImage:image3 forState:UIControlStateSelected];
  32. [_isAllBtn setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
  33. _isAllBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
  34. [_isAllBtn addTarget:self action:@selector(isAllBtnClick) forControlEvents:UIControlEventTouchUpInside];
  35. [self addSubview:_isAllBtn];
  36. _selectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  37. [_selectBtn setImage:image1 forState:UIControlStateSelected];
  38. [_selectBtn setImage:image2 forState:UIControlStateNormal];
  39. [_selectBtn addTarget:self action:@selector(selectBtnClick) forControlEvents:UIControlEventTouchUpInside];
  40. _selectBtn.hidden = YES;
  41. [self addSubview:_selectBtn];
  42. }
  43. return self;
  44. }
  45. -(void)setTitle:(NSString *)title{
  46. _title = title;
  47. [_isAllBtn setTitle:title forState:UIControlStateNormal];
  48. }
  49. -(void)layoutSubviews{
  50. CGFloat x,y,w,h;
  51. x = kSize.width-70;
  52. y = 5;
  53. w = 34;
  54. h = 34;
  55. _selectBtn.frame = setDIYFrame;
  56. x = 10;
  57. y = 0;
  58. w = kSize.width - 70;
  59. h = 44;
  60. _isAllBtn.frame = setDIYFrame;
  61. }
  62. #pragma mark 点击事件
  63. -(void)isAllBtnClick{
  64. if (self.openBlock) {
  65. self.openBlock();
  66. }
  67. }
  68. - (void)updateWithStatus:(BOOL)status {
  69. NSString *name = status ? @"fold" : @"unfold";
  70. UIImage *image = [[UIImage imageNamed:name] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
  71. [_isAllBtn setImage:image forState:UIControlStateNormal];
  72. }
  73. -(void)selectBtnClick{
  74. _selectBtn.selected = !_selectBtn.selected;
  75. if (self.selectBlock) {
  76. self.selectBlock();
  77. }
  78. }
  79. #pragma mark 响应属性值变化后的方法
  80. -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
  81. if ([keyPath isEqualToString:@"editing"]) {
  82. NSString *str = [NSString stringWithFormat:@"%@",change[@"new"]];
  83. BOOL isEditing = [str boolValue];
  84. NSLog(@"%u",isEditing);
  85. _selectBtn.hidden = !isEditing;
  86. }
  87. }
  88. @end