国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[原創]傳遞UIScrollView的滑動事件到其子視圖中

2019-11-14 20:43:27
字體:
來源:轉載
供稿:網友

在開發項目時,遇到了一個問題:

我的UIScrollViewOut中嵌入了一個UIScrollViewIn,

當我想要拖動UIScrollViewIn時,UIScrollViewOut卻動了,而UIScrollViewIn沒有動。但是只要按住UIScrollViewIn一會再拖動,UIScrollViewIn就可以滑動。

 

網上查閱UIScrollView的原理:

UIScrollView重載了hitTest方法,當手指touch的時候,UIScrollView會攔截所有event,然后等待150ms,在這段時間內,如果沒有手指沒有移動,當時間結束時,UIScrollView會發送tracking event到子視圖上,并且自身不滑動。在時間結束前,手指發生了移動,那么UIScrollView就會進行滑動,從而取消發送tracking。

 

看來是UIScrollViewOut的問題。直接拖動UIScrollViewIn,此時touch時間在150ms以內,UIScrollViewOut會認為是拖動自己,從而攔截了event,導致UIScrollViewIn接受不到滑動的event。但是只要按住UIScrollViewIn一會再拖動,此時此時touch時間超過150ms,因此滑動的event會發送到UIScrollViewIn上。

 

期間試過幾種方法,只有一種可行,就是重寫UIScrollViewOut的hitTest方法:當滑動UIScrollViewIn時,使UIScrollViewOut不可滑動。

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{    UIView* result = [super hitTest:point withEvent:event];    if ([result.superview isKindOfClass:[UIScrollViewIn class]])    {        self.scrollEnabled = NO;    }    else     {        self.scrollEnabled = YES;        }    return result;}

PS:

試過幾種方法都不行,例如:修改UIScrollViewIn為firstResponder;重寫UIScrollViewOut中hitTest方法,永遠返回UIScrollViewIn的指針


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 缙云县| 七台河市| 麻阳| 改则县| 拉萨市| 宜春市| 军事| 临海市| 江永县| 清水河县| 丰宁| 遂昌县| 武城县| 清涧县| 阿城市| 迭部县| 吴忠市| 故城县| 巴塘县| 广水市| 西乌珠穆沁旗| 陇南市| 驻马店市| 蓝山县| 新密市| 吴川市| 东丰县| 凭祥市| 彭山县| 琼结县| 开平市| 定南县| 来宾市| 蓬安县| 威海市| 乌审旗| 永丰县| 从化市| 北海市| 台东县| 兴隆县|