Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用自动布局设置UIScrollView约束的动画_Ios_Iphone_Objective C_Uiscrollview - Fatal编程技术网

Ios 使用自动布局设置UIScrollView约束的动画

Ios 使用自动布局设置UIScrollView约束的动画,ios,iphone,objective-c,uiscrollview,Ios,Iphone,Objective C,Uiscrollview,我想在点击按钮时,在屏幕外设置UIScrollView的动画 这就是代码: [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{ [scrollViewTopViewConstraint setConstant:-eventScrollView.frame.size.height-100]; [self.view layoutIfNeede

我想在点击按钮时,在屏幕外设置UIScrollView的动画

这就是代码:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{

    [scrollViewTopViewConstraint setConstant:-eventScrollView.frame.size.height-100];
    [self.view layoutIfNeeded];
}
completion:^(BOOL finished) {}];
再次点击相同按钮时,UIScrollView应在屏幕上重新设置动画:

[UIView animateWithDuration:0.3 delay:0.3 + 0.2 options:UIViewAnimationOptionCurveEaseIn animations:^{

    // Standardwert einstellen
    [scrollViewTopViewConstraint setConstant:0];
    [self.view setNeedsDisplay];
}
问题是当ScrollView返回第二个按钮时,内容大小被重置。因此,在我设置新的contentSize之前,用户无法滚动,但如果不重新设置,效果会更好

我怎样才能做到这一点

德国致以最良好的祝愿,
Chris

您可以将setConstant放在动画块之外。你为什么打电话给[self.view layoutifneed];在第一个块中,但[self.view setNeedsDisplay];在第二个街区?为什么他们两个都不需要[自视布局];?谢谢你的回答。哦,那只是测试…我只是用你的建议测试了一下,但情况是一样的。我认为是自动布局导致了这一点:/上面的代码似乎没有影响使用自动布局的UIScrollView的高度,因此您的contentSize首先不应该更改。您是否在其他地方修改UIScrollView高度?