iOS开发中的小技巧1:UIScrollView和tableViewCell的冲突

iOS开发中的小技巧1:UIScrollView和tableViewCell的冲突,第1张

开发中经常在cell上添加scrollView展示多张图片,但是这是scrollView的点击事件会与cell的点击事件冲突,这里介绍一个简单的方法,使scrollView既可以滑动,cell的点击事件也好用。

在自定义cell中,添加下面两句话:

        self.scrollView.userInteractionEnabled = NO//关闭scrollView的用户交互

        [self.contentView addGestureRecognizer:self.scrollView.panGestureRecognizer]//让cell捕捉scrollView的点击事件并相应

除此之外,也可以给UIImageView添加手势,但是比较麻烦,不如这两句话方便。

但是此时需加上这一句;

       self.myImageView.userInteractionEnabled = YES//用户交互,默认关闭,BOOL类型

       UITapGestureRecognizer *tap =[[ UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]

       tap.numberOfTouchesRequired = 1

      [self.myImageView addGestureRecognizer:tap]

      -(void)tapAction:(UITapGestureRecognizer *)sender{

            //实现方法

       }

UIScrollView * view = [[UIScrollView alloc] initWithFrame:CGRectMake(5, 0, 295, 40)]

view.backgroundColor = [UIColor redColor]

[view setContentSize:CGSizeMake(600, 40)]

[cell.contentView addSubview:view]

[view release]

这个只是加一个简单的scrollview

找到填充cell的委托,然后把UIScrollView 添加到cell里面去。[cell addsubview:view ]

多页面嵌套的实现方式

1、底部是一个UIScrollView,然后在UIScrollView上添加视图View;

2、底部是一个UICollectionView,然后在cell上添加各种视图View

两种方式的区别就是,UICollectionView的重用机制,可以减小内存中读入的数据

3、底部是个UIController,然后添加UIScrollView,在UIController上添加目标UIController,在UIScrollView上添加目标UIController的view;

4、底部是个UIController,然后添加UICollectionView,在UIController上添加目标UIController,在UICollectionView上添加目标UIController的view;

可以保留UIcontroller的生命周期

JXCategoryView的实现

JXCategoryListContainerView继承与UIView

内部UI实现

WMPageController

首先子视图要继承WMPageController类

内部创建一个UIScrollview用于加载,我们需要展示的子视图;

在每次需要展示视图时候,通过addChildViewController添加视图;

// 把视图添加到当前Controller上

在视图消失以后,通过removeFromParentViewController移除控制器;

横向对比

1:WMPageController 为了保持生命周期的完整性,每次都需要对UIController进行 *** 作,增加了性能的消耗;

2:WMPageController底层为UIScrollView,没有进行视图的复用,如果作为首页,会占用较多的内存;

3:使用WMPageController必须要继承WMPageController,对工程的影响面较大,切入性要求较高;


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

原文地址:https://54852.com/bake/11445512.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存