繁体   English   中英

Autolayout UIScrollView约束奇怪的行为

[英]Autolayout UIScrollView constraints strange behaviour

我已经在这里阅读了iOS6发行说明和Autolayout + UIScrollview的一些相关主题,但我有一个奇怪的错误,我不知道如何解决。

视图的层次结构是:

- View
-- UIScrollView
---- UIImageView
---- UILabel

我通过Interface Builder在视图中添加了元素,并使用了Autolayout ON并保留了默认约束。

我的标签有动态文本,其高度是可消耗的(在IB中配置的行数= 0)。 我希望滚动视图自动适应图像视图+标签的高度。

以下是关联的视图控制器类的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
    self.imageView.translatesAutoresizingMaskIntoConstraints = NO;
    self.label.translatesAutoresizingMaskIntoConstraints = NO;

    self.imageView.image = [UIImage imageNamed:@"image.png"];

    self.label.text = @"Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text Text text END";
    [self.label sizeToFit];

    NSDictionary *viewsDictionnary = NSDictionaryOfVariableBindings(scrollView, imageView, label);
    [self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]-20-[label]-10-|" options:0 metrics:0 views:viewsDictionnary]];

    self.imageView.userInteractionEnabled = YES;
    [self.imageView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)]];
}

- (void)tap
{
    [self.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View2"] animated:YES];
}

如您所见,我正在为滚动视图添加垂直约束。 这看起来效果很好,但我在控制台中有以下消息:

2013-03-26 16:24:49.072 test [34704:11303]无法同时满足约束条件。 可能至少下列列表中的一个约束是您不想要的约束。 试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果您看到了您不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)(“”,“”)

将尝试通过打破约束来恢复

现在具体的错误:如果我向下滚动,然后我点击图像进入第二个视图,然后单击返回返回当前视图,滚动视图将从先前位置开始,因为它是顶部的观点。 而且我无法滚动查看视图。

对不起,我没有足够的声誉来发布图片,但您可以在此处下载示例项目以重现该错误: https//docs.google.com/file/d/0B-sCDWMvn-KGS19sUkZnUFdWWTg/edit? USP =共享

谢谢你的帮助,卢卡斯

编辑此处的错误的解决方法: UIScrollView与自动布局错误的偏移

根据控制台中的消息。 xib中的垂直约束与您在代码中添加的约束冲突。 如果你只是想改变之间的垂直空间imageViewlabel ,然后做在厦门国际银行。

关于你的bug。 这里是解决自来水在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM