@@ -19,15 +19,15 @@ - (instancetype)initWithFrame:(CGRect)frame {
1919 _iconView = [[UIImageView alloc ] init ];
2020 _iconView.userInteractionEnabled = YES ;
2121 [self addSubview: _iconView];
22-
22+
2323 _textLabel = [[UILabel alloc ] init ];
2424 _textLabel.userInteractionEnabled = NO ;
2525 _textLabel.numberOfLines = 0 ;
2626 _textLabel.textColor = [UIColor darkGrayColor ];
2727 _textLabel.font = [UIFont systemFontOfSize: 12 ];
2828 _textLabel.textAlignment = NSTextAlignmentCenter;
2929 [self addSubview: _textLabel];
30-
30+
3131 _horizontalLayout = NO ;
3232 _autoresizingFlexibleSize = NO ;
3333 }
@@ -36,30 +36,30 @@ - (instancetype)initWithFrame:(CGRect)frame {
3636
3737// / 水平布局
3838- (void )horizontalLayoutSubviews {
39-
39+
4040 CGFloat sideLength = self.frame .size .height - self.imageEdgeInsets .top - self.imageEdgeInsets .bottom ;
4141 _iconView.frame = CGRectMake (self.imageEdgeInsets .left , self.imageEdgeInsets .top , sideLength, sideLength);
42-
42+
4343 if (_textLabel.text .length > 0 ) {
44-
44+
4545 CGFloat x = CGRectGetMaxX (_iconView.frame ) + self.imageEdgeInsets .right ;
4646 CGFloat h = self.frame .size .height ;
4747 CGSize size = [_textLabel sizeThatFits: CGSizeMake (MAXFLOAT, h)];
4848 CGFloat y = (self.frame .size .height - size.height ) / 2 ;
49-
49+
5050 if (_autoresizingFlexibleSize) {
5151 if (_sizeLimit > 0 ) { // 限宽
5252 if (size.width > _sizeLimit) size.width = _sizeLimit;
5353 }
5454 _textLabel.frame = CGRectMake (x, y, size.width , size.height );
55-
55+
5656 CGRect frame = self.frame ;
5757 frame.size .width = _textLabel.frame .origin .x + _textLabel.frame .size .width ;
5858 self.frame = frame;
5959 } else {
6060 _textLabel.frame = CGRectMake (x, y, size.width , size.height );
6161 }
62-
62+
6363 } else {
6464 if (_autoresizingFlexibleSize) {
6565 CGRect frame = self.frame ;
@@ -73,29 +73,29 @@ - (void)horizontalLayoutSubviews {
7373- (void )verticalLayoutSubviews {
7474 CGFloat sideLength = self.frame .size .width - self.imageEdgeInsets .left - self.imageEdgeInsets .right ;
7575 _iconView.frame = CGRectMake (self.imageEdgeInsets .left , self.imageEdgeInsets .top , sideLength, sideLength);
76-
76+
7777 if (_textLabel.text .length > 0 ) {
78-
78+
7979 CGFloat y = CGRectGetMaxY (_iconView.frame ) + self.imageEdgeInsets .bottom ;
8080 CGFloat w = self.frame .size .width ;
8181 CGFloat h = self.frame .size .height - y;
82-
82+
8383 if (!_autoresizingFlexibleSize) {
8484 _textLabel.frame = CGRectMake (0 , y, w, h);
8585 } else {
86-
86+
8787 CGSize size = [_textLabel sizeThatFits: CGSizeMake (w, h)];
8888 CGFloat x = (self.frame .size .width - size.width ) / 2 ;
8989 if (_sizeLimit > 0 ) { // 限高
9090 if (size.height > _sizeLimit) size.height = _sizeLimit;
9191 }
9292 _textLabel.frame = CGRectMake (x, y, size.width , size.height );
93-
93+
9494 CGRect frame = self.frame ;
9595 frame.size .height = _textLabel.frame .origin .y + _textLabel.frame .size .height ;
9696 self.frame = frame;
9797 }
98-
98+
9999 } else {
100100 if (_autoresizingFlexibleSize) {
101101 CGRect frame = self.frame ;
@@ -108,6 +108,7 @@ - (void)verticalLayoutSubviews {
108108- (void )setModel : (zhIconLabelModel *)model {
109109 _textLabel.text = model.text ;
110110 _iconView.image = model.icon ;
111+ _model = model;
111112}
112113
113114- (void )updateLayoutBySize : (CGSize)size finished : (void (^)(zhIconLabel *))finished {
0 commit comments