You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.3 KiB

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