我正在尝试如何使用 UIScrollView。经过一番折腾,我终于掌握了窍门。但现在我似乎遇到了另一个障碍。
在这个简单的应用程序中,我有一个滚动视图,为了使其工作,我必须将视图的底部空间设置为滚动视图约束为 0,如上所述here https://stackoverflow.com/a/15516706/1077789而且效果很好。我是通过IB来做的。
现在我遇到了一个场景,我必须以编程方式完成该部分。我在以下代码中添加了viewDidLoad
method.
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)
(
"",
””
)
有人可以告诉我该怎么做吗?我还附上了一个演示项目here http://www52.zippyshare.com/v/15239751/file.html以便您可以更好地了解该问题。
UPDATE:
首先感谢您的回复。使用答案中提到的方法我能够让它发挥作用。然而,在稍微不同的情况下,情况并非如此。现在我尝试以编程方式将视图加载到视图控制器上。
如果我可以进一步解释的话。有 2 个视图控制器。第一个是UITableViewController
第二个是UIViewController
。里面有一个UIScrollView
。还有多个UIView
其中一些视图的高度超过了屏幕的正常高度。
The UITableViewController
显示选项列表。根据用户的选择,特定的UIView
批次外将被装载到UIViewController
与UIScrollView
.
在这种情况下,上述方法不起作用。滚动没有发生。因为我是单独加载视图,所以我必须做一些不同的事情吗?
我已经上传了一个演示项目here http://www72.zippyshare.com/v/15876364/file.html这样您就可以看到它的实际效果。请参阅Email.xib
并选择Email从表视图列表中。