gpt4 book ai didi

表格 View 滚动时的iOS UIView动画?

转载 作者:行者123 更新时间:2023-12-01 16:03:38 25 4
gpt4 key购买 nike

我要动画like home screen of this app .这个屏幕顶部有一个 View (上面有一个标签),下面有一个表格 View 。当我滚动表格时,它的顶 View 和标题会随着动画而变小,并且在特定点之后,它就像导航栏一样,标题在中心。当我向下滚动时也是如此。
这是我到目前为止尝试过的

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint offset = scrollView.contentOffset;
NSLog(@"y is::: %f", offset.y);

if (offset.y > 0 && offset.y < 16 && self.topView.frame.size.height > 64) {

[UIView animateWithDuration:0.8 animations:^{

CGRect rect = self.topView.frame;
rect.size.height = rect.size.height-offset.y;
self.topView.frame = rect;

}completion:^(BOOL finish){

}];

}
else if(offset.y <= 0 && offset.y > -16 && self.topView.frame.size.height < 80)
{
[UIView animateWithDuration:0.8 animations:^{

CGRect rect = self.topView.frame;
rect.size.height = 80;
self.topView.frame = rect;

}completion:^(BOOL finish){

}];
}

}

请注意,我的顶 View 初始高度为 80,我希望在向上滚动时将其设为 64,反之亦然。
使用此代码, View 高度动画,但它取决于动画持续时间。所以如果我快速滚动,那么它不能正常工作。我提到的原始应用程序有非常流畅的动画。我怎么能做到这一点?
原App截图- enter image description here
这些屏幕截图显示了三个不同的滚动位置,请注意顶部的“MySurgery”文本。1- 较大的文本和右对齐。
2-小文本和接近中心位置
3-较小的文本和集中(如导航栏)

最佳答案

我认为你不需要动画,你只需要一些计算和设置顶 View 的框架。像,

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint offset = scrollView.contentOffset;

if (offset.y>0 && offset.y<64) {
[topView layoutIfNeeded];
CGRect viewFrame = topView.frame;
viewFrame.size.height--;
topView.frame = viewFrame;
}
}

请注意,如果您的 View 使用自动布局,则 layoutIfNeeded 是必需的

关于表格 View 滚动时的iOS UIView动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29225936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com