- (voID) scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw { if(scrollVIEw.contentInset.top + scrollVIEw.contentOffset.y < -30.0f) { [scrollVIEw setContentOffset:CGPointMake(1.0f,-30.0f)-scrollVIEw.contentInset.top animated:NO]; }}
因此,当用户向上滚动并进入表视图中的负空间时,当它们释放时,它们仍然可以看到我在y = -30处插入的视图,以便表格不会“快照”回到0.
这一切都完全像我想要的那样.但是,当表的contentOffset设置为负y值时,例如[scrollVIEw setContentOffset:CGPointMake(1.0f,-30.0f)-scrollVIEw.contentInset.top animated:NO],则在我的两个单元格上都无法识别触摸表,也不是我直接插入表中的视图.我想知道如何将contentOffset设置为这样的值,并且仍然具有我的tableVIEw的子视图,以及单元格,注册触摸.
解决方法 向contentInset.top添加30.0f可能更容易,这样您就可以继续使用stock表视图.如果您仍想使用您概述的方法,则需要在UItableVIEw子类中覆盖hitTest:withEvent:
- (UIVIEw *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if (CGRectContainsPoint(self.theVIEwInQuestion.frame,point)) { return self.theVIEwInQuestion; } return [super hitTest:point withEvent:event];}
默认情况下,iOS视图不响应其边界之外的触摸,因此代码所做的是告诉事件处理系统您认为VIEwInQuestion在表内部,即使它位于原点之外且超出范围.
如果你想要更多细节,“Event handling for iOS – how hitTest:withEvent: and pointInside:withEvent: are related?”对于系统如何工作有一些很好的答案.
总结以上是内存溢出为你收集整理的ios – 当contentOffset设置为负值时,在tableview上无法识别触摸全部内容,希望文章能够帮你解决ios – 当contentOffset设置为负值时,在tableview上无法识别触摸所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)