我尝试进行自动布局,使按钮出现在边缘,但在iphone 5上它位于边缘,而iphone 6则位于中间区域。
next = UIButton()
let me = "next.png"
next.setImage(UIImage(named: me), forState: .Normal)
next.frame = CGRectMake(250, 370, 40, 40)
next.setTranslatesAutoresizingMaskIntoConstraints(false)
next.addTarget(self,action: "nexter:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(next)
let horizontalConstraintnext = NSLayoutConstraint(item: next, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 285)
view.addConstraint(horizontalConstraintnext)
let verticalConstraintnext = NSLayoutConstraint(item: next, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 350)
view.addConstraint(verticalConstraintnext)
let widthConstraintnext = NSLayoutConstraint(item: next, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 40)
next.addConstraint(widthConstraintnext)
let heightConstraintnext = NSLayoutConstraint(item: next, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 40)
next.addConstraint(heightConstraintnext)
答案 0 :(得分:0)
计算机完全按照你的要求去做。你在约束中说'#34;把这个按钮从左边缘开出285点"。那么,与整个屏幕相关的位置显然取决于屏幕正确边缘的位置!
所以,如果那不是你的意思,那就不要这么说了。例如,如果要相对于右边缘修复它,则相对于右边缘而不是左边缘修复它。
答案 1 :(得分:0)
您将按钮的前导设置为距视图控制器内容视图前导的常数285点。 iPhone 5的屏幕比6更窄。
我不希望它处于iPhone 5或iPhone 6的边缘。但是,6有一个更宽的屏幕,因此它将更接近6的中心而不是它将在5.为什么不在水平约束中尝试像20那样小得多的常数值?
答案 2 :(得分:0)
以下几行:
Vector2 scorePos
您将按钮的左侧从视图左侧固定到285。没有理由按钮会跟随屏幕的宽度,因为你将它固定在距离左侧285的位置。您需要做的是将按钮的尾随空格固定到超级视图,方法是在右侧填充所需的填充量,例如填充为10。
尝试这样的事情:
score = 0;