美文网首页
2020-4-29 解决在iOS11,UISegmentedCo

2020-4-29 解决在iOS11,UISegmentedCo

作者: 小专注 | 来源:发表于2020-04-29 11:16 被阅读0次

问题:

UISegmentedControl中 无论如何调整控件的宽度,文本都显示不全.

解决方案:

1.新建一个Controller 继承UISegmentedControl.重写initWithItems 与  layoutSubviews 方法

1-1 重写initWithItems方法

-(instancetype)initWithItems:(NSArray *)items{

    return [super initWithItems:items];

}

1- 2 主要重新写initWithItems方法

-(void)layoutSubviews{

    [super layoutSubviews];

      for (UIView *subView in self.subviews) {

          for (UIView *subSubview in subView.subviews) {

              if ([subSubview isKindOfClass:[UILabel class]]) {

                  UILabel *label = (UILabel *)subSubview;

                  [label setTranslatesAutoresizingMaskIntoConstraints:NO];

                  NSLayoutConstraint *constraintCenterX = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:subView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0];

                  [subView addConstraint:constraintCenterX];

                  NSLayoutConstraint *constraintCenterY = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:subView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];

                  [subView addConstraint:constraintCenterY];

                  NSLayoutConstraint *constraintWidth = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:subView attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];

                  [subView addConstraint:constraintWidth];

              }

          }

      }

}

2.导入类名 替换UISegmentedController

相关文章

网友评论

      本文标题:2020-4-29 解决在iOS11,UISegmentedCo

      本文链接:https://www.haomeiwen.com/subject/rvcogctx.html