Ios 水平UIScrollView自动布局约束本地化
我有多个按钮,它们之间用10px的填充物隔开(leadingPadding),如果是英语,则项目必须从左到右开始,如果是阿拉伯语,则项目必须从右到左和集中 这是用于绘制滚动视图的代码: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
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模式下的容器尾随对齐