FLEXTableContentCell.m 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // FLEXTableContentCell.m
  3. // FLEX
  4. //
  5. // Created by Peng Tao on 15/11/24.
  6. // Copyright © 2015年 f. All rights reserved.
  7. //
  8. #import "FLEXTableContentCell.h"
  9. #import "FLEXMultiColumnTableView.h"
  10. @interface FLEXTableContentCell ()
  11. @end
  12. @implementation FLEXTableContentCell
  13. + (instancetype)cellWithTableView:(UITableView *)tableView columnNumber:(NSInteger)number; {
  14. static NSString *identifier = @"FLEXTableContentCell";
  15. FLEXTableContentCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
  16. if (!cell) {
  17. cell = [[FLEXTableContentCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
  18. NSMutableArray<UILabel *> *labels = [NSMutableArray array];
  19. for (int i = 0; i < number ; i++) {
  20. UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
  21. label.backgroundColor = UIColor.whiteColor;
  22. label.font = [UIFont systemFontOfSize:13.0];
  23. label.textAlignment = NSTextAlignmentLeft;
  24. label.backgroundColor = UIColor.greenColor;
  25. [labels addObject:label];
  26. UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:cell
  27. action:@selector(labelDidTap:)];
  28. [label addGestureRecognizer:gesture];
  29. label.userInteractionEnabled = YES;
  30. [cell.contentView addSubview:label];
  31. cell.contentView.backgroundColor = UIColor.whiteColor;
  32. }
  33. cell.labels = labels;
  34. }
  35. return cell;
  36. }
  37. - (void)layoutSubviews {
  38. [super layoutSubviews];
  39. CGFloat labelWidth = self.contentView.frame.size.width / self.labels.count;
  40. CGFloat labelHeight = self.contentView.frame.size.height;
  41. for (int i = 0; i < self.labels.count; i++) {
  42. UILabel *label = self.labels[i];
  43. label.frame = CGRectMake(labelWidth * i + 5, 0, (labelWidth - 10), labelHeight);
  44. }
  45. }
  46. - (void)labelDidTap:(UIGestureRecognizer *)gesture {
  47. UILabel *label = (UILabel *)gesture.view;
  48. if ([self.delegate respondsToSelector:@selector(tableContentCell:labelDidTapWithText:)]) {
  49. [self.delegate tableContentCell:self labelDidTapWithText:label.text];
  50. }
  51. }
  52. @end