我正在尝试如何使用 UIScrollView。经过一番折腾,我终于掌握了窍门。但现在我似乎遇到了另一个障碍。
在这个简单的应用程序中,我有一个滚动视图,为了让它工作,我必须将视图的底部空间设置为滚动视图约束为 0,如此处所述,它工作正常。我是通过IB做的。
现在我遇到了一个场景,我必须以编程方式完成那部分。我在viewDidLoad
方法中添加了以下代码。
NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.scrollView
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:0.0];
[self.view addConstraint:bottomSpaceConstraint];
但这似乎不起作用。它在控制台窗口中输出以下消息,我不知道该怎么做。
无法同时满足约束。以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的;(2) 找到添加了一个或多个不需要的约束的代码并修复它。(注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档)(“”,“”)
有人可以告诉我该怎么做吗?我还在此处附加了一个演示项目,以便您对这个问题有更好的了解。
更新:
首先感谢您的回复。使用答案中提到的方法,我能够让它工作。然而,在稍微不同的情况下,它不是。现在我正在尝试以编程方式将视图加载到视图控制器上。
如果我可以进一步解释。有 2 个视图控制器。第一个是 a UITableViewController
,第二个是 a UIViewController
。里面那个UIScrollView
. 还有多个UIView
s 并且其中一些视图的高度超过了屏幕的正常高度。
显示UITableViewController
选项列表。根据用户的选择,一个特定UIView
的批次将被加载UIViewController
到UIScrollView
.
在这种情况下,上述方法不起作用。滚动没有发生。由于我要单独加载视图,我是否必须做一些不同的事情?
我在这里上传了一个演示项目,以便您可以看到它的实际效果。请查看并从表格视图列表中Email.xib
选择电子邮件。