我的框架
文章平均质量分 59
刘小哈哈哈
这个作者很懒,什么都没留下…
展开
-
封装了一个顺滑嵌套滚动的框架
就是开始滚动的时候,上面的头部和下面的内容是一起滚动的,但是当滚动到segment 的时候,segment是悬停 的,下面的tableView是分区的。原创 2023-12-03 14:58:47 · 823 阅读 · 3 评论 -
封装了一个iOS媒体标题走马灯轮播视图
底层放置一个scrollview,上面放置两个内容相同的label, 滚动的到第二个的时候,立即将scrollview的偏移量置为第一个,停留一段时间之后开始下一轮滚动。原创 2023-07-22 22:57:39 · 124 阅读 · 0 评论 -
一个自定义中间放大CollectionViewLayout
根据cell距离屏幕中间的距离,设置cell的缩小系数,并通过设置 attributes.transform 缩小cell。原创 2023-07-09 15:53:30 · 284 阅读 · 0 评论 -
一个iOS嵌套滚动框架
重写 shouldReceiveTouch 方法这里是为了获取当前的子滚动视图控制外层视图的滚动控制子视图的滚动使用方法pod库地址: link原创 2022-12-04 15:24:28 · 330 阅读 · 0 评论 -
一个iOS 列表头部放大工具
头部放大是移动端开发常用到的UI,这里封装了一个便于使用的头部方放大工具,UITableView 和 UICollectionView 都可以使用。原创 2022-11-19 21:56:46 · 186 阅读 · 0 评论 -
iOS 实现 UITableView 嵌套滚动
外层一个tableview,内层一个tableView设置一个滚动临界点,超过这个临界点之后只允许一个某个tableView 滚动。该逻辑在自定义的tableView 内部实现。原创 2022-10-15 22:10:41 · 1241 阅读 · 0 评论 -
一个强大的iOS瀑布流布局LBWaterFallLayout
文章目录效果图实现思路实现原理核心计算逻辑实现代码协议文件.h 文件.m 文件使用方法效果图实现思路UICollectionView的精髓就是UICollectionViewLayout。UICollectionViewLayout决定了UICollectionView是如何显示在界面上的。因此我们需要自定义一个UICollectionViewLayout 的子类,在子类里面重写生成布局的方法,创建我们自己需要的布局实现原理重写- (void)prepareLayout进行提前创建布局重写-原创 2021-12-31 16:17:25 · 2357 阅读 · 0 评论 -
封装了一个iOS下载工具LBDownloadManager
实现原理使用苹果系统的 NSURLSession实现下载功能核心功能代码- (void)downLoader:(NSURL*)url downLoadInfo:(DownLoadInfoBlock)downLoadInfo progress:(ProgressBlock)progressBlock success:(SuccessBlock)successBlock failed:(FailedBlock)failedBlo原创 2021-12-18 16:21:29 · 877 阅读 · 0 评论 -
一款iOS分页控制视图 LXBPageView
文章目录效果图实现代码效果图实现代码//.h 文件@class LXBPageView;@protocol LXBPageViewDataSource <NSObject>///页面数量- (NSInteger)subViewsNumberOfPageView:(LXBPageView *)pageView;/// 某个位置的字视图/// @param pageView 分页视图/// @param index 索引- (UIView *)subViewForPag原创 2021-11-20 14:39:30 · 1544 阅读 · 0 评论 -
一款方便使用的iOS自定义模态动画工具 LBModalTool
@[TOC] LBModalTool原理创建一个对象,设置为VC的transitioningDelegate ,遵守UIViewControllerTransitioningDelegate 协议,并实现相应的方法,再创建一个类, 遵循UIViewControllerAnimatedTransitioning 协议,并实现相应的方法实现代码///LBModalConfiguration.htypedef void(^LBViewControllerPresentAndDismissComple原创 2021-11-18 22:37:53 · 799 阅读 · 0 评论 -
一个便于使用的 iOS分页标题视图 LBPageMenu
@[分页标题视图LBPageMenu]效果图默认滚动风格拉伸风格实现思路将下面滚动的大scrollView 传入到标题视图中,监听大的scrollview的滚动,实现标题的滚动和知识条的滚动关键逻辑普通跟手滚动逻辑就是 计算出当前大scrollView移动的距离x占移动一页的距离y的比例,x / (一页的宽度) - (floorf)(x / (一页的宽度) = 一页净移动的距离 z当前页面移动的比例为 q = z/y,q 即为当前页面移动的比例,在根据两个按钮之间的差值,计算出即时原创 2021-09-24 08:11:06 · 258 阅读 · 0 评论 -
一个好用的iOS 动态宽度自适应layout LBAttributeLayout
效果图LBAttributeLayout文章目录场景实现原理核心逻辑关键代码使用方法场景该布局的使用场景有很多:搜索记录,商品sku, 一些标签等等实现原理UICollectionFlowLayout 是 在prepareLayout创建布局属性,然后 通过collectionViewContentSize 方法返回内容的size通过layoutAttributesForElementsInRect 方法返回各个item的布局的,所以,我们自定义layout 的时候,需要重写这三原创 2021-09-21 13:44:30 · 867 阅读 · 1 评论 -
一个水平方向多行cell的自定义layout —LBHorizontalCollectionViewLayout ,仿淘宝金刚位布局
首先看效果图文章目录LBHorizontalCollectionViewLayout支持的效果设置行数计算总内容高度关键逻辑使用方法LBHorizontalCollectionViewLayout支持的效果设置行数水平多行滚动,默认两行,行数可配置,计算总内容高度可以根据cell的数量,限制行数,计算出总内容的高度关键逻辑重写layout 的布局方法prepareLayout最主要的是需要计算出列数/*根据不需滚动的时候最大行数 和 最大列数 计算出不滚动的情况下展示的最多it原创 2021-09-20 15:54:13 · 287 阅读 · 0 评论 -
一个可灵活定制的iOS文字水平轮播组件LBHorizontalTextLoopView
首先看下效果图文章目录水平文字轮播实现原理核心代码水平文字轮播实现原理将一个文字数组传给该组件,该组件先判断文字是否足够长,在足够长的情况下添加轮播功能。轮播功能的实现,为了达到无限轮播效果,创建了三组同样的文案,我们默认展示的是中间的那一组,当滚动到最后那一第一条的时候,马上返回到中间那一组的第一条,这样就达到了无缝衔接的效果逻辑可用下面的图简单理解当滚动到第三组的时候,迅速切换到第二组,达到无缝衔接的效果核心代码#pragma mark - 展示数据- (void)loa原创 2021-09-20 14:11:24 · 563 阅读 · 0 评论 -
封装了一个iOS淡入淡出切换图片的组件
首先查看效果图逻辑比较简单,直接上淡入淡如切换图片的核心代码,这里通过在设置切换图片的时候,添加一个动画来实现淡如淡出的效果,-(void)displayUrlImage { if (self.urls.count == 0) { return; } self.index ++; if (self.index >= [self.urls count]) { self.index = 0; } CATran原创 2021-09-19 20:13:24 · 293 阅读 · 0 评论 -
Hit -Test机制, 扩大UIButton的点击范围
文章目录Hit -test 机制过程扩大button的点击范围Hit -test 机制过程当用户触摸(Touch)屏幕进行交互时,系统首先要找到响应者(Responder)。系统检测到手指触摸(Touch)操作时,将Touch 以UIEvent的方式加入UIApplication事件队列中。UIApplication从事件队列中取出最新的触摸事件进行分发传递到UIWindow进行处理。UIWindow 会通过hitTest:withEvent:方法寻找触碰点所在的视图,这个过程称之为hit-test原创 2021-09-19 14:04:03 · 610 阅读 · 0 评论 -
一款iOS UITableView, UICollectionView 曝光埋点框架LBTrackManager,支持有效曝光,数据去重,可扩展 .支持pod
文章目录列表曝光埋点框架埋点时机获取当前展示cell数据去重列表曝光埋点框架埋点时机我这里 在滚动停止埋点(这种停止滚动时候埋点暂且称为无效点),开始拖动埋点(这时候通过判断拖动之前停留的时间长短来确定是否埋点)框架hook 了三个 系统方法(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willD原创 2021-09-18 00:00:53 · 1116 阅读 · 1 评论 -
一款健壮性良好,高度可扩展的iOS水平轮播组件 LBHorizontalLoopView,使用三个视图完成轮播逻辑,内部使用了重用,支持同时展示不同样式轮播内容,支持快速拖动,支持pod导入
首先看效果图一本框架使用三个视图实现轮播效果原理底部有一个s c rolllview , scrollview的内容宽度为3 * 视图宽度首次展示第一个展示在中间,左边展示最后一个,右边展示第二个,当向右拖动一次之后,迅速将scrollView的偏移量恢复到中间,并且当前索引增加一,并根据当前索引刷新三个子视图,这样就达到了轮播的效果,并且该框架支持多种内容视图同时展示,扩展性更好二 核心代码///这里是结束滚动之后需要将改变当前索引,并恢复偏移量,并刷新数据- (void)scro原创 2021-08-31 14:37:44 · 312 阅读 · 0 评论 -
一款优雅的竖直分页框架,含有下拉返回上一页,上拉进入下一页,有阻尼效果,支持pod导入
首先看下demo的实现效果本框架也是实践了苹果的重用思想,支持不同样式的页面之间的切换,(不同的页码展示不同的页面)核心逻辑:使用三个视图实现下拉和上拉效果,上拉(活着下拉)之后立即返回原位,并刷新数据刷新三个视图- (void)reloadTopView{ [self.topView removeFromSuperview]; [self.reuseViews addObject:self.topView]; NSInteger count = [self.data原创 2021-08-26 10:31:50 · 120 阅读 · 0 评论 -
写了 一款好用的iOS 竖直轮播组件,支持重用,多种view轮播,支持定制化,渐隐效果 。 XBRollingNoticeView ,支持pod 导入
首先看效果图如上核心代码实践了苹果cell 重用思想,支持轮播单个view的重用,同一个轮播组件支持展示不同的view,///刷新- (void)reloadDataAndStartRoll{ [self stopTimer]; [self layoutCurrentCellAndWillShowCell]; NSInteger count = [self.dataSource numberOfRowsForRollingNoticeView:self]; .原创 2021-08-25 22:52:58 · 562 阅读 · 0 评论