Ios 水平UIScrollView自动布局约束本地化

Ios 水平UIScrollView自动布局约束本地化,ios,swift,uiscrollview,autolayout,constraints,Ios,Swift,Uiscrollview,Autolayout,Constraints,我有多个按钮,它们之间用10px的填充物隔开(leadingPadding),如果是英语,则项目必须从左到右开始,如果是阿拉伯语,则项目必须从右到左和集中 这是用于绘制滚动视图的代码: var previousView: UIView = self.itemsScrollView! for i in 0..<self.items.count { let sectionButton = UIButton(frame: CGRectZe

我有多个按钮,它们之间用10px的填充物隔开(leadingPadding),如果是英语,则项目必须从左到右开始,如果是阿拉伯语,则项目必须从右到左和集中

这是用于绘制滚动视图的代码:

        var previousView: UIView = self.itemsScrollView!

        for i in 0..<self.items.count {

           let sectionButton = UIButton(frame: CGRectZero)
           sectionButton.titleLabel.text = "i = " + i
           sectionButton.translatesAutoresizingMaskIntoConstraints = false
           self.itemsScrollView!.addSubview(sectionButton)

           // Left Constraint
          let leftConstraint = NSLayoutConstraint(
            item: sectionButton,
            attribute: .Leading,
            relatedBy: .Equal,
            toItem: toView,
            attribute: (toView === self.itemsScrollView!) ? .Leading : .Trailing,
            multiplier: 1.0,
            constant: leadingPadding);
          self.itemsScrollView! .addConstraint(leftConstraint)

          // Top Constraint
         let topConstraint = NSLayoutConstraint(
            item: sectionButton,
            attribute: .Top,
            relatedBy: .Equal,
            toItem: self.itemsScrollView!,
            attribute: .Top,
            multiplier: 1.0,
            constant: self.itemPaddingTopBottom);
          self.itemsScrollView! .addConstraint(topConstraint)

          // Width Constraint
          let widthConstraint = NSLayoutConstraint(
            item: sectionButton,
            attribute: .Width,
            relatedBy: .Equal,
            toItem: nil,
            attribute: .NotAnAttribute,
            multiplier: 1.0,
            constant: buttonWidth);
          self.itemsScrollView! .addConstraint(widthConstraint)


          // Height Constraint
          let heightConstraint = NSLayoutConstraint(
            item: sectionButton,
            attribute: .Height,
            relatedBy: .Equal,
            toItem: nil,
            attribute: .NotAnAttribute,
            multiplier: 1.0,
            constant: itemHeight);
          self.itemsScrollView! .addConstraint(heightConstraint)

            previousView = sectionButton
        }

        // add Trailing constraint on scroll
        if (previousView !== self.itemsScrollView!) {
        let leftConstraint = NSLayoutConstraint(
            item: previousView,
            attribute: .Trailing,
            relatedBy: .Equal,
            toItem: self.itemsScrollView!,
            attribute: .Trailing,
            multiplier: 1.0,
            constant: 0.0);
        self.itemsScrollView! .addConstraint(leftConstraint)
        }
var-previousView:UIView=self.itemscrollview!

对于0..中的i,不应直接在scrollview中添加多个视图。相反,您应该添加一个容器视图,在scrollview中水平居中,其中应该包括所有必要的子视图。容器视图的宽度必须由其子视图确定,因此第一个项目的前导与容器的前导对齐,最后一个项目的尾随与LTR模式下的容器尾随对齐,或者第一个项目的尾随与容器尾随对齐,最后一个项目的前导与RTL模式下的容器尾随对齐