口袋优选

HFStretchableTableHeaderView.m 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //
  2. // StretchableTableHeaderView.m
  3. // StretchableTableHeaderView
  4. //
  5. #import "HFStretchableTableHeaderView.h"
  6. @interface HFStretchableTableHeaderView()
  7. {
  8. CGRect initialFrame;
  9. CGFloat defaultViewHeight;
  10. }
  11. @end
  12. @implementation HFStretchableTableHeaderView
  13. @synthesize tableView = _tableView;
  14. @synthesize view = _view;
  15. - (void)stretchHeaderForTableView:(UITableView*)tableView withView:(UIView*)view
  16. {
  17. _tableView = tableView;
  18. _view = view;
  19. initialFrame = _view.frame;
  20. defaultViewHeight = initialFrame.size.height;
  21. UIView* emptyTableHeaderView = [[UIView alloc] initWithFrame:initialFrame];
  22. _tableView.tableHeaderView = emptyTableHeaderView;
  23. [_tableView addSubview:_view];
  24. }
  25. - (void)scrollViewDidScroll:(UIScrollView*)scrollView
  26. {
  27. CGRect f = _view.frame;
  28. f.size.width = _tableView.frame.size.width;
  29. _view.frame = f;
  30. if(scrollView.contentOffset.y < 0) {
  31. CGFloat offsetY = (scrollView.contentOffset.y + scrollView.contentInset.top) * -1;
  32. initialFrame.origin.y = offsetY * -1;
  33. initialFrame.size.height = defaultViewHeight + offsetY;
  34. _view.frame = initialFrame;
  35. }
  36. }
  37. - (void)resizeView
  38. {
  39. initialFrame.size.width = _tableView.frame.size.width;
  40. _view.frame = initialFrame;
  41. }
  42. @end