gpt4 book ai didi

ios - 每个点都没有调用 ScrollviewDidScroll

转载 作者:行者123 更新时间:2023-12-03 19:50:28 26 4
gpt4 key购买 nike

我的 View Controller 底部有一个按钮。当用户向下滚动时,按钮必须附加到特定高度的 ScrollView 。

我需要在 contentOffset.y 达到特定值时立即将按钮附加到 ScrollView 。 -(void) scrollviewDidScroll 对我没有帮助,因为当用户快速滚动时 contentOffset 可能会跳转。这方面的任何线索都是有帮助的。

此外,每当我向 ScrollView 添加 subview 时,都会调用 -(void) viewDidLayoutSubviews。这又将 contentOffset 设置为 {0,0}。我怎样才能实现我需要的功能?

最佳答案

我需要用 UITableView 做同样的事情,对我来说,使用 scrollViewDidScroll 很有效。

我创建了一个名为 staticBar 的 View 并将其添加为 tableView 的 subview ,但我必须重新排列 tableview subview 才能使其出现在正确的位置。我面前没有我的代码,但在 -scrollViewDidScroll: 中它看起来像这样:

- (void)scrollViewDidScroll:(UIScrollView*)scrollView
{
CGFloat staticBarAdjustedY = _staticBarY - scrollView.contentOffset.y;
CGFloat scrollViewYFloor = scrollView.frame.size.height - _staticBar.frame.size.height;
// This way maximum Y the view can have is at the base of the scrollView
CGFloat newY = MIN( staticBarAdjustedY, scrollViewYFloor);
_staticBar.frame = (CGRect){ { _staticBar.frame.origin.x, newY}, _staticBar.frame.size}
}

今天晚些时候我会检查我的代码并在此处添加更多详细信息。

此外,您说过 scrollviewDidScroll 在 contentOffset 中有跳转,但值得一提的是,这些跳转与 scrollView 用于滚动其自己的 View 的相同。所以这并不是说您在这个委托(delegate)方法上“丢失”了帧。

希望对您有所帮助。

PS:所以,这是我的其余代码。

//I place my custom view as a subview of the tableView below it's last subview
//The last subview is for scroll indicators.
WTButtonsBar *buttonBar = [[WTButtonsBar alloc] init];
[self.tableView insertSubview:buttonBar belowSubview:self.tableView.subviews.lastObject];

scrollViewDidScroll:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//In my app I needed my view to stick to the top of the screen
//thats why I use MAX here
//self.buttonsBarOriginalY is the view's position in the scrollView when it isn't attached to the top.
CGFloat newY = MAX(scrollView.contentOffset.y, self.buttonsBarOriginalY)
[_buttonsBar setFrame:(CGRect){{0, newY}, _buttonsBar.frame.size}];
}

关于ios - 每个点都没有调用 ScrollviewDidScroll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24162061/

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