ios – UIVc在UIScrollview之上,只通过滚动而不是点击

ios – UIVc在UIScrollview之上,只通过滚动而不是点击,第1张

概述我有一个UITableview,在表的一部分顶部有一个UIVIew的子类,如下所示: -uitable– | –uiview- | || || || || | ——— | | | | | ———– 该视图与tableview具有相同的superview,但部分涵盖了tableview. UIView上有几个按钮.我希望用户能够在视图上滚动并随后移动tableview(就像他在桌面上滚动一样).但是 我有一个UItablevIEw,在表的一部分顶部有一个UIVIEw的子类,如下所示:

-uitable–
| –uivIEw- |
|| ||
|| ||
| ——— |
| |
| |
———–

该视图与tablevIEw具有相同的supervIEw,但部分涵盖了tablevIEw. UIVIEw上有几个按钮.我希望用户能够在视图上滚动并随后移动tablevIEw(就像他在桌面上滚动一样).但是,如果他点击视图上的按钮,我希望该点击在视图上注册,而不是发送到tablevIEw.现在,我正在覆盖视图的 – (BOol)pointInsIDe:(CGPoint)指向withEvent:(UIEvent *)事件方法总是返回NO,它适用于滚动但具有将所有触摸发送到tablevIEw的效果,渲染我的按钮无效.我有什么方法可以将滑动/平移手势传递到桌面视图,但保持轻敲手势?

谢谢,

解决方法 不要总是从pointInsIDe返回NO,而是检查点是否与任何UIbutton子视图相交 – 如果是,则返回YES.

- (BOol) pointInsIDe:(CGPoint)point withEvent:(UIEvent *)event{    for ( UIVIEw* sv in self.subvIEws )    {        if ( CGRectContainsPoint( sv.frame,point) )            return YES;    }    return NO;}

编辑:替代解决方案

根据您的评论,您希望用户通过其中一个子视图按钮开始滚动UItableVIEw.要完成这项工作,您需要使包含按钮的UIVIEw成为UItableVIEw的子视图.

通过这样做,UIVIEw将开始与UItableVIEwCells一起滚动.为了防止这种情况,您需要在滚动发生时调整框架,或者可能使用约束将其锁定到位.

- (voID) vIEwDIDLoad{    [super vIEwDIDLoad];    // instantiate your subvIEw containing buttons.  mine is coming from a nib.    UINib* n = [UINib nibWithNibname: @"TSVIEw" bundle: nil];    NSArray* obJs = [n instantiateWithOwner: nil options: nil];    _tsv = obJs.firstObject;    // add it to the tablevIEw:    [self.tableVIEw addSubvIEw: _tsv];}// this is a UIScrollVIEw delegate method - but UItableVIEw IS a UIScrollVIEw...- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw{    [scrollVIEw bringSubvIEwToFront:_tsv];    CGRect fixedFrame = _tsv.frame;    fixedFrame.origin.y = 100 + scrollVIEw.contentOffset.y;    _tsv.frame = fixedFrame;}
总结

以上是内存溢出为你收集整理的ios – UIVc在UIScrollview之上,只通过滚动而不是点击全部内容,希望文章能够帮你解决ios – UIVc在UIScrollview之上,只通过滚动而不是点击所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存