Skip to content

wdq123550/MMSwiftUIKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1.对于UIKit本身的组件,可以这样使用 image 对于继承自MMView的组件,或者直接用MMView的组件,不仅能获得属性的链式写法,还能使用方法的链式写法: image 使用.mm命名空间时,键入.view结尾能返回设置的控件. 对于非继承自MMView组件的其他组件,没有.mm命名空间

2.框架里还封装了listKit,主要是对UITableView和UICollectionview的封装,具体使用方式如下:

2.1初始化MMTableView或者MMCollectionView: image

2.2 image

以上代码为:声明一个继承自MMCVCellVM的对象,其中MMCVCellVM全名为MMCollectionViewCellViewModel,就是cell的viewModel。

然后声明一个继承自MMCVCell的对象,MMCVCell的全名为MMCollectionViewCell。

在MMCVCellVM子类中重写cellType方法,返回cell view model 对应的cell的类型,这里HomeTitleCVCellVM里面的cellType返回HomeTitleCVCell.self,说明HomeTitleCVCell和HomeTitleCVCellVM是一一对应的。

在MMCVCell的子类中重写父类的方法去进行自定义设置,比如cellSize是自定义collection view cell 的尺寸的。

另外在每一个cell里面都应该要有一个viewModel的计算属性,类型则是自身对应的那个cell viewModel。

一切设置完了之后在外面使用则是这样的 image 拿到self.datas直接给collection view reload image 至此就完成了,不需要再写那几个数据源方法

什么numberOfSectionsInCollectionView,

什么collectionview:numberOfItemsInSection,

和collectionview:cellForItemAtIndexPath

这些数据源再也不用写了!

MMTableView也是同理!

另外不会写cell的可以参考MMClearTVCell和MMClearCVCell,这两个的全称是MMClearTableViewCell、MMClearCollectionViewCell,他们两个被我用来当间隔的cell来使用的。

另外有些额外的方法比如UITableViewDelegate或者UICollectionViewDelegate的一些方法需要额外实现的,可以直接写在ViewController里,

这里指的viewController是之前初始化MMCollectionView时传入的那个extensionTarget image 这样可以做到dataSource调用的是proxy(框架里面封装)的方法,而delegate则调用的是vc里实现的方法, 不仅仅是delegate,datasource也可以,但是在swift这种强类型编程语言中,写了遵守某个datasource,则必须实现那几个数据源方法,所以我们这样写: image 这样写会报错,因为没实现那几个数据源方法,但是那几个数据源方法已经被封装起来了,不需要我们写,所以我们这样写: image 首先干掉遵守协议那部分代码,直接写需要的数据源方法,但是在方法前加入@objc,这样写,就算没有写遵守了数据源协议,UIKit也知道你实现了哪个数据源方法。

需要:

最低IDE:XCode 16.0

最低ios版本:iOS 15+

最低Swift版本: Swift5.5

About

轻松又快速使用UIKit

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages