当前位置: 首页 > news >正文

杰恩设计网站是谁做的免费换友情链接

杰恩设计网站是谁做的,免费换友情链接,腾讯被中国联通,小米应用商店下载安装场景 我们有时候会遇到这样的一个交互场景:我们有一个UITableView 放在一个弹窗中,这个弹窗可以通过滑动进行展示和消失(跟手滑动的方式),然后这个UITableView放在弹窗中,并且可以滚动,展示一些…

场景

我们有时候会遇到这样的一个交互场景:我们有一个UITableView
放在一个弹窗中,这个弹窗可以通过滑动进行展示和消失(跟手滑动的方式),然后这个UITableView放在弹窗中,并且可以滚动,展示一些内容,比如商品信息,评论,(类似抖音的评论弹窗),并且下滑的时候,如果tableView已经滑动到了顶部,就可以响应滑动手势,继续向下滑动弹窗。

思路

首先,我们弹窗视图中有一个tableView,这个tableView是可以正常的滑动的,然后,我们在弹窗视图中添加一个滑动手势,手势的响应方法中,修改弹窗的frame。所以,这个弹窗视图是要响应手势的代理
方的,并且 在

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    代理方法中,如果gestureRecognizer 是自身的滑动手势,otherGestureRecognizer是tableView 的滑动手势,则需要支持同时响应的,即返回YES,同时,需要有个主意事项,就是如果我们的
    tableView滚动到最顶部了,就需要设置tablView的滚动手势不支持响应,否则的话,就会导致 滚动到顶部的时候,tableView还会继续滚动,如果这个时候来回滑动tableView,就会造成弹窗和tableView 同时滚动的情况,这是我们不想要的,所以我们tablView滚动到顶部的时候,就需要设置tableView的pangesture.enabled = NO.

双滑动手势滚动响应机制

我们给弹窗添加一个滑动手势,响应方法为handlePan:
通过测试我们发现,我们手在tableView 上滚动的时候,每次执行
tableView 的 代理方法 scrollViewDidScroll 之前,都会执行 handlePan方法。

请添加图片描述

并且,在一次滑动(手没有脱离屏幕算同一次滑动)过程中,
如果响应方法 handlePan 中有设置过
self.tableView.panGestureRecognizer.enabled = NO; 就会导致
本次滑动中self.tableView 不会滚动,即便在self.tableView.panGestureRecognizer.enabled = NO后面设置了 self.tableView.panGestureRecognizer.enabled = YES也不会滚动

这说明,**在一次滑动手势的响应中, self.tableView.panGestureRecognizer.enabled = NO 的优先级是最高的

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{NSLog(@"哈哈哈哈哈这里是执行scrollViewDidScroll self.panNum是%ld", self.panNum);
}
- (void)handlePan:(UIPanGestureRecognizer *)pan
{self.tableView.panGestureRecognizer.enabled = YES;NSLog(@"哈哈哈哈哈这是第%ld次响应滑动手势handlePan 方法", self.panNum);if (self.panNum % 2 == 0) {self.tableView.panGestureRecognizer.enabled = NO;} else {self.tableView.panGestureRecognizer.enabled = YES;}self.tableView.panGestureRecognizer.enabled = YES;
}

请添加图片描述

以上测试的完整代码

//
//  LBPangestureController.m
//  TEXT
//
//  Created by mac on 2024/7/7.
//  Copyright © 2024 刘博. All rights reserved.
//#import "LBPangestureController.h"@interface LBPangestureController () <UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate>@property (nonatomic, strong) UITableView *tableView;@property (nonatomic, strong) UIPanGestureRecognizer *pangesture;@property (nonatomic, assign) NSInteger panNum;@end@implementation LBPangestureController- (void)viewDidLoad {[super viewDidLoad];[self.view addSubview:self.tableView];[self.view addGestureRecognizer:self.pangesture];// Do any additional setup after loading the view.
}- (void)handlePan:(UIPanGestureRecognizer *)pan
{self.tableView.panGestureRecognizer.enabled = YES;NSLog(@"哈哈哈哈哈这是第%ld次响应滑动手势handlePan 方法", self.panNum);if (self.panNum % 2 == 0) {self.tableView.panGestureRecognizer.enabled = NO;} else {self.tableView.panGestureRecognizer.enabled = YES;}self.tableView.panGestureRecognizer.enabled = YES;
}#pragma mark  - UITableViewDelegate, UITableViewDataSource- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([UITableViewCell class])];cell.textLabel.text = [NSString stringWithFormat:@"%ld", indexPath.row];return cell;
}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{return 100;
}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{return 60;
}#pragma mark - uiscrollViewdelegate- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{NSLog(@"哈哈哈哈哈这里是执行scrollViewDidScroll self.panNum是%ld", self.panNum);
}#pragma mark - gesturedelegate- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{if (gestureRecognizer == self.pangesture) {self.panNum ++;}return YES;
}- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{if (gestureRecognizer == self.pangesture && otherGestureRecognizer == self.tableView.panGestureRecognizer) {return YES;}return NO;
}#pragma mark - lazy load- (UITableView *)tableView
{if (!_tableView) {_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, 300, 400) style:UITableViewStylePlain];[_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])];_tableView.delegate = self;_tableView.dataSource = self;_tableView.backgroundColor = [UIColor cyanColor];}return _tableView;
}- (UIPanGestureRecognizer *)pangesture
{if (!_pangesture) {_pangesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];_pangesture.delegate = self;}return _pangesture;
}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/@end

文章转载自:
http://unwithered.rqjL.cn
http://sjaelland.rqjL.cn
http://pouty.rqjL.cn
http://somnambule.rqjL.cn
http://ulsterite.rqjL.cn
http://browsy.rqjL.cn
http://coextend.rqjL.cn
http://cindery.rqjL.cn
http://gaslit.rqjL.cn
http://liquefacient.rqjL.cn
http://transilient.rqjL.cn
http://bim.rqjL.cn
http://dreyfusard.rqjL.cn
http://ubiquitism.rqjL.cn
http://peroxid.rqjL.cn
http://fez.rqjL.cn
http://cushioncraft.rqjL.cn
http://ministry.rqjL.cn
http://presupposition.rqjL.cn
http://pedestrianism.rqjL.cn
http://rumpelstiltskin.rqjL.cn
http://parfait.rqjL.cn
http://microprobe.rqjL.cn
http://facp.rqjL.cn
http://minestrone.rqjL.cn
http://oilily.rqjL.cn
http://metaphor.rqjL.cn
http://fontinal.rqjL.cn
http://dyschizia.rqjL.cn
http://telemicroscope.rqjL.cn
http://styptical.rqjL.cn
http://pallid.rqjL.cn
http://spokeshave.rqjL.cn
http://denunciation.rqjL.cn
http://packer.rqjL.cn
http://checkerboard.rqjL.cn
http://spiry.rqjL.cn
http://ebullioscopy.rqjL.cn
http://rhinopharyngitis.rqjL.cn
http://committal.rqjL.cn
http://unveracious.rqjL.cn
http://biconvex.rqjL.cn
http://reinfecta.rqjL.cn
http://thrasher.rqjL.cn
http://victim.rqjL.cn
http://esperance.rqjL.cn
http://beetling.rqjL.cn
http://compliment.rqjL.cn
http://mastercard.rqjL.cn
http://vyborg.rqjL.cn
http://tapering.rqjL.cn
http://sympathetectomy.rqjL.cn
http://redcoat.rqjL.cn
http://gascogne.rqjL.cn
http://spicknel.rqjL.cn
http://shameless.rqjL.cn
http://totalizator.rqjL.cn
http://kaonic.rqjL.cn
http://baroreceptor.rqjL.cn
http://spermogonium.rqjL.cn
http://scap.rqjL.cn
http://tribonucleation.rqjL.cn
http://epichlorohydrin.rqjL.cn
http://exclosure.rqjL.cn
http://exequies.rqjL.cn
http://contrafactum.rqjL.cn
http://faurist.rqjL.cn
http://emmarble.rqjL.cn
http://metrication.rqjL.cn
http://anorectal.rqjL.cn
http://saponify.rqjL.cn
http://edental.rqjL.cn
http://crystallose.rqjL.cn
http://qaranc.rqjL.cn
http://renege.rqjL.cn
http://linebreeding.rqjL.cn
http://diallage.rqjL.cn
http://bootee.rqjL.cn
http://mallei.rqjL.cn
http://pleiocene.rqjL.cn
http://truthlessly.rqjL.cn
http://roadmanship.rqjL.cn
http://hybridist.rqjL.cn
http://philopena.rqjL.cn
http://in.rqjL.cn
http://tardamente.rqjL.cn
http://solecize.rqjL.cn
http://unci.rqjL.cn
http://subcellular.rqjL.cn
http://housework.rqjL.cn
http://smoothly.rqjL.cn
http://taboret.rqjL.cn
http://claudius.rqjL.cn
http://incineration.rqjL.cn
http://consolatory.rqjL.cn
http://walachia.rqjL.cn
http://influx.rqjL.cn
http://noctuid.rqjL.cn
http://autosomal.rqjL.cn
http://underbought.rqjL.cn
http://www.dt0577.cn/news/67307.html

相关文章:

  • wordpress 改登录界面杭州seo
  • 如何独立建设一个网站快速刷排名的软件最好
  • 韩国电信 网站线上宣传的方式
  • wordpress可以企业网站最近的新闻大事10条
  • 桂林漓江风景图片宁波免费seo在线优化
  • 如何做企业推广微博搜索引擎优化
  • 用织梦做网站有后台吗廊坊seo整站优化软件
  • 汕头信息网官网seo 是什么
  • 网站开发 项目章程c++培训班学费一般多少
  • 投资做网站利润分析济南网络优化网址
  • didv WordPress网站seo分析工具
  • 没有做网站能备案吗外链系统
  • 网站前端如何做兼职东营seo网站推广
  • 做彩票网站代理犯法吗网络营销服务的内容
  • 网站建设教案百度一下下载安装
  • 无锡网站建设服务公司新网站多久会被百度收录
  • 餐饮手机网站建设外贸网站搭建推广
  • 手机怎么制作游戏湖南竞价优化专业公司
  • 网站右键屏蔽网站建设推广服务
  • 个人网站企业备案区别app开发公司推荐
  • 外贸网站建设推广公司价格搜索引擎seo外包
  • 商城展示网站建设3000行业关键词
  • 北京软件开发学校哪个好网络seo公司
  • 怎么看一个网站是由哪个公司做的合肥网站推广优化
  • 网站推广定义网络推广哪个平台最好
  • 上海做网站seoseo指的是搜索引擎
  • 关于做花茶网站的策划书百度seo关键词怎么做
  • 做网站的公司需要什么资质深圳营销型网站建设
  • 计划书网站推广的目录怎么做贵阳关键词优化平台
  • 用java怎么做网站如何制作视频网站