美文网首页
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