我已将我的滚动视图固定在IB的左上角 - 右上角,它工作正常。
我希望在滚动视图中正确地从nib加载我的UIView。
但它没有用。
将我的观点添加到scrollview,
当我将我的视图添加到UIView时,它工作正常,但不能在ScrollView中工作。 这是我的代码。
var constY = NSLayoutConstraint(item: circularView!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.IBscrollView, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
self.IBscrollView.addConstraint(constY)
var constW = NSLayoutConstraint(item: circularView!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: screenWidth/2.5)
circularView?.addConstraint(constW)
//view.addConstraint(constW) also works
var constH = NSLayoutConstraint(item: circularView!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: screenWidth/2.5)
circularView?.addConstraint(constH)
var rightPin = NSLayoutConstraint.constraintsWithVisualFormat("H:|-[myView]-40-|", options: nil, metrics: nil, views: dCircularViews)
self.IBscrollView.addConstraints(rightPin)
答案 0 :(得分:0)
而不是第一个约束尝试以下内容:
var leadingConst = NSLayoutConstraint(item: circularView!, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal, toItem: self.IBscrollView, attribute: NSLayoutAttribute.Right, multiplier: 1, constant: 0)
self.IBscrollView.addConstraint(leadingConst)
您可以保持所有其他约束相同。
答案 1 :(得分:0)
我不完全确定你的意思是什么并不工作'但是当你说pin时,这是否意味着当IBscrollView
滚动时你不想让视图移动?在这种情况下,我建议查看此文档:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html
如果您希望滚动视图滚动且不是 - 在使用Autolayout和UIScrollView
时,您必须确保NSLayoutConstraint
内的UIScrollView
视图},连接到UIScrollView
的顶部和底部,以便正确设置其contentSize
。这里讨论的是:http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/
答案 2 :(得分:0)
在所有方向设置自动布局约束后,尝试在名为contentView的scrollView中添加UIView。在viewDidLoad方法中为contentView添加自动布局。使用contentView作为基础来添加其他项目,如标签和按钮。设置与contentView相关的自动布局约束。这个目标c代码
-(void)ViewDidLoad
{
[super viewDidLoad];
NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.contentView
attribute:NSLayoutAttributeLeading
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0];
[self.view addConstraint:leftConstraint];
NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem:self.contentView
attribute:NSLayoutAttributeTrailing
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0];
[self.view addConstraint:rightConstraint];
}
查看本教程以获取完整指南:http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/