WNSegmentItem.m 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // WNSegmentItem.m
  3. #import "WNSegmentItem.h"
  4. @interface WNSegmentItem ()
  5. @property (nonatomic, weak) CALayer *divider;
  6. @end
  7. @implementation WNSegmentItem
  8. - (instancetype)initWithView:(UIView *)view {
  9. self = [super initWithFrame:CGRectZero];
  10. if (self) {
  11. self.userInteractionEnabled = YES;
  12. self.translatesAutoresizingMaskIntoConstraints = NO;
  13. [self addSubview:view];
  14. if ([view isKindOfClass:UILabel.self]) {
  15. _label = (UILabel *)view;
  16. }
  17. if ([view isKindOfClass:UIImageView.self]) {
  18. _imageView = (UIImageView *)view;
  19. }
  20. _view = view;
  21. // layout
  22. NSDictionary *views = @{@"view": view};
  23. NSArray *h = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:views];
  24. NSArray *w = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:views];
  25. [self addConstraints:w];
  26. [self addConstraints:h];
  27. }
  28. return self;
  29. }
  30. - (void)layoutSubviews {
  31. [super layoutSubviews];
  32. CALayer *divider = self.divider;
  33. if (divider) {
  34. divider.frame = (CGRect){0, 0, 1.0, CGRectGetHeight(self.bounds)};
  35. }
  36. }
  37. - (void)showVerticalDivider {
  38. CALayer *divider = ({
  39. CALayer *layer = [CALayer layer];
  40. layer.backgroundColor = [UIColor yellowColor].CGColor;
  41. [self.layer addSublayer:layer];
  42. layer;
  43. });
  44. self.divider = divider;
  45. }
  46. - (void)hideVerticalDivider {
  47. [_divider removeFromSuperlayer];
  48. }
  49. - (void)addTipView:(UIView *)tipView {
  50. [self addSubview:tipView];
  51. }
  52. @end