- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 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/
我认为在 iPhone 开发方面有不错的经验。据我所知..我确实设置了委托(delegate)..我从上到下都有UIView --> UIScrollView--> UITextView 我尝试了一切
我的 View Controller 底部有一个按钮。当用户向下滚动时,按钮必须附加到特定高度的 ScrollView 。 我需要在 contentOffset.y 达到特定值时立即将按钮附加到 Sc
我通过修改 PullToRefresh 库在 scrollViewDidScroll 中触发了 UIView 动画。我想要的是在用户开始拉动时触发动画,并在拉动以刷新标题 View 离开屏幕时终止它。
我正在编写程序以在滚动 UITableView 时移动名为“myView”的 UIView,请看下图: “myView”会随着tableview的contentoffset的变化而改变它的'y坐标',
我在 tgat 中有一个 UIScrollView 我有一个 UITableView。我已经禁用了 UITableView 的滚动所以我只想检查我的 ScrollView 是否已经到达底部,如果调用加
我已经设置了 scrollView 委托(delegate)并将逻辑实现到 scrollViewDidScroll 协议(protocol)方法中,如下所示,它永远不会进入第二种情况。我想知道我错过了
我正在使用 Collection View 来查看我的 rss 提要数据。我正在使用 -(void)scrollViewDidScroll:(UIScrollView *)scrollView 来检测
我正在使用 https://github.com/xmartlabs/XLPagerTabStrip 它有 containerview,这是一个 scrollview,子 viewController
我有两个类:Foo 和 Bar: // Foo protocol FooDelegate { func scrollViewDidScroll(offset: CGFloat) } class
当一个人在删除一行或添加一行时使用 UITableViewRowAnimation 时,有时如果该行位于 TableView 的极端,则表会滚动。 然而,即使它滚动,它似乎也没有在委托(delegat
大家好(和圣诞快乐) 希望有人能回答我的问题,那将是一个美好的圣诞节 礼物。 我的 UIViewController 一个表,在表部分区域中有一个分段控件。看起来像这样 每次用户单击分段控件时,我都会
我有这个委托(delegate),它打算在用户用手指滚动时执行: -(void)scrollViewDidScroll:(UIScrollView *)scrollView 我有一行代码滚动到开头:
出于某种原因,当我尝试创建一个函数 scrollviewdidscroll 时,它只给我一个 void 选项。我已经导入了 scrollviewdelegate,并在 viewdidload 中将委托
当用户使用 scrollViewDidScroll 滚动时,我正在尝试向我的(自定义)导航栏添加阴影,但它没有执行任何操作。我在另一个 View Controller 上有完全相同的代码,但它有一个
我创建了第一个 View Controller “MainViewController”,并将带有导出 contentContainer 的容器 View 放入其中。 我创建了第二个 View Con
我尝试在滚动屏幕时获取触摸位置。我尝试从 touchBegin() 获取它,但我做不到。那是因为 touchBegin 在滚动过程中从未调用过。我怎么解决这个问题???快速回答我。 最佳答案 使用 S
我的应用程序出现奇怪的结果。当我按下后退按钮时,它总是调用 scrollViewDidScroll 并且它使我的应用程序崩溃。 如果我没有滚动到底部(只需加载 View 然后按下后退按钮),就不会发生
所以人们对这个特定事件的大部分问题是在动画发生时让 scrollViewDidScroll 触发。我的情况正好相反。我觉得 scrollViewDidScroll 不应该在我的情况下触发。 让我进一步
我正在尝试检查用户是否在我的应用上上下滚动,但它没有调用我的 scrollViewDidScroll 方法 当我在应用程序上上下滚动时,为什么它不打印 received scroll 有什么想法吗?
我在 View 中有一个 Scrollview。我想使用函数 scrollViewDidScroll 来检查和更新箭头(左右)。 - (void)scrollViewDidScroll:(UIScro
我是一名优秀的程序员,十分优秀!