基于IOS系统的动态创建视图UI 解决方案 - LazyScrollView

简介: LazyScrollView 是 iOS 的 ScrollView,用于解决视图的复用问题。

基于LazyScroll,我们创造了一个动态创建视图UI页面的解决方案,详情可见Tangram-iOS

LazyScrollView 是 iOS 的 ScrollView,用于解决视图的复用问题。

与 UITableView 相比,LazyScrollView 可以轻松创建不同的布局,而不是单行流布局。

与 UICollectionView 相比,LazyScrollView 可以在没有 Grid 布局的情况下创建视图,并且提供了一种在 ScrollView 中创建不同类型布局的更简单的方法。

我们创建了一个模块化的 UI 解决方案,用于基于 动态构建 UI 页面LazyScrollView,您可以从这个 repo 中看到更多信息:Tangram-iOS

安装

LazyScrollLazyScroll在 CocoaPods 中可用。

pod 'LazyScroll'

您还可以从发布页面下载源文件并手动将它们添加到您的项目中。

用法

#import "TMMuiLazyScrollView.h"

然后,创建 LazyScrollView:

TMMuiLazyScrollView *scrollview = [[TMMuiLazyScrollView alloc ]init];
scrollview.frame = self.view.bounds;

接下来,实现TMMuiLazyScrollViewDataSource

@protocol TMMuiLazyScrollViewDataSource <NSObject>
@required
// Number of items in scrollView.
- (NSUInteger)numberOfItemInScrollView:(TMMuiLazyScrollView *)scrollView;
// Return the view model (TMMuiRectModel) by index.
- (TMMuiRectModel *)scrollView:(TMMuiLazyScrollView *)scrollView rectModelAtIndex:(NSUInteger)index;
// Return view by the unique string that identify a model (muiID).
// You should render the item view here.
// You should ALWAYS try to reuse views by setting each view's reuseIdentifier.
- (UIView *)scrollView:(TMMuiLazyScrollView *)scrollView itemByMuiID:(NSString *)muiID;
@end

接下来,设置 LazyScrollView 的数据源:

scrollview.dataSource = self;

最后,重新加载:

[scrollview reloadData];

有关更多详细信息,请克隆 repo 并打开演示项目。

相关文章
|
24天前
|
存储 安全 编译器
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash
|
4天前
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
10 3
|
5天前
|
JavaScript
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
12 1
|
2月前
|
存储 Web App开发 Android开发
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
69 1
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
|
3天前
|
JavaScript
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
7 0
|
3天前
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
9 0
|
13天前
|
安全 搜索推荐 Android开发
探索安卓和iOS系统的优劣与特点
在移动操作系统领域,安卓和iOS一直是最热门的两个选择。本文将探讨安卓和iOS系统的优劣与特点,帮助读者更好地了解这两个操作系统,并为选择合适的移动设备提供参考。
19 0
|
2月前
iOS16系统根据PHAsset判断是否在云上
iOS16系统根据PHAsset判断是否在云上
31 1
|
2月前
|
安全 开发者 iOS开发
iOS16系统手机设置开启开发者模式才能安装ipa包
iOS16系统手机设置开启开发者模式才能安装ipa包
46 1
|
2月前
如何解决iOS16系统app首次启动总是弹出允许粘贴提示框问题
如何解决iOS16系统app首次启动总是弹出允许粘贴提示框问题
36 0
如何解决iOS16系统app首次启动总是弹出允许粘贴提示框问题