| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // WNSegmentItem.m
- #import "WNSegmentItem.h"
- @interface WNSegmentItem ()
- @property (nonatomic, weak) CALayer *divider;
- @end
- @implementation WNSegmentItem
- - (instancetype)initWithView:(UIView *)view {
- self = [super initWithFrame:CGRectZero];
- if (self) {
- self.userInteractionEnabled = YES;
- self.translatesAutoresizingMaskIntoConstraints = NO;
- [self addSubview:view];
- if ([view isKindOfClass:UILabel.self]) {
- _label = (UILabel *)view;
- }
- if ([view isKindOfClass:UIImageView.self]) {
- _imageView = (UIImageView *)view;
- }
- _view = view;
-
- // layout
- NSDictionary *views = @{@"view": view};
- NSArray *h = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:views];
- NSArray *w = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:views];
- [self addConstraints:w];
- [self addConstraints:h];
- }
- return self;
- }
- - (void)layoutSubviews {
- [super layoutSubviews];
-
- CALayer *divider = self.divider;
- if (divider) {
- divider.frame = (CGRect){0, 0, 1.0, CGRectGetHeight(self.bounds)};
- }
- }
- - (void)showVerticalDivider {
- CALayer *divider = ({
- CALayer *layer = [CALayer layer];
- layer.backgroundColor = [UIColor yellowColor].CGColor;
- [self.layer addSublayer:layer];
-
- layer;
- });
- self.divider = divider;
- }
- - (void)hideVerticalDivider {
- [_divider removeFromSuperlayer];
- }
- - (void)addTipView:(UIView *)tipView {
- [self addSubview:tipView];
- }
- @end
|