首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS-UITableView 详解(一)

分组样式UITableViewStyleGrouped UITableViewCell UITableView中每行都是一个UITableViewCellUITableViewCell的样式我们可以通过...UITableViewCellStyle进行设置,UITableViewCellStyle是一个枚举值,我们来看看UITableViewCell都有哪些样式 typedef NS_ENUM(NSInteger...cars_total.plist 可以看到数组里面包含若干个字典,字典里两个键值,一个是汽车数组,一个是标题,数组中又是若干个字典,分别是icon键值和 name键值 接下来我们来创建汽车模型 CLCar.h...in array) { [arrayM addObject:[self carGroupWithDict:dict]]; } return arrayM; } @end 模型创建好了...CLCarGroup *group = self.carGroups[section]; return group.cars.count; } // TableViewCell 内容的设置 -(UITableViewCell

1.2K50

使用流动控制器(Flow Controller )实现 MVVM 协议模型

模块 我希望我的架构可以创建代码可用性强的模块。还可以创建整个项目都可以复用的结构,同时能够使用某个方法创建一个灵活的接口, 以至于项目可拓展性比较好。...该模型的另一个重要的功能就是它可以负责为 ViewController 实例化并注入 ViewModel + Model。 这有助于依赖注入时代码重用更多。...另一个例子是抽象相似界面,网格和列表使用相同的 ViewModel 。抽象必然会更复杂些,但当你的应用程序的增长或者随着时间的变化,你的收益也会越来越多。...这很有趣,因为我对每种类型的接口都有单独的操作,但通用的操作可以共享,同时不使用继承。...要做的事: 测试:单元测试和模拟界面测试(我开始测试的结果是 78% 的覆盖率) 扩展模型 :其他对象(我需要找到其他的动物) 接口和基础设施:创建其他类型的单元,使用相同的 UIViewController

95240
您找到你想要的搜索结果了吗?
是的
没有找到

【iOS7一些总结】9、与列表显示(在):列表显示UITableView

组成列表的每个元素称为UITableViewCell实例。 一个UITableViewCell也是应用很广泛的类,定义可见官方文档。...在详细的使用过程中,能够创建一个独立的UITableView,也能够直接创建一个UITableViewController。...须要时能够创建自己定义视图加入到表头和表尾。...则多个 UITableViewCell构成一个section,每一个section也有头和尾视图。 以下简单新建一个demo展示一下怎样创建一个UITableView。...托付方法一般用于实现个性化处理表视图的基本样式(单元格的高度等)以及捕捉单元格选中的响应。数据源方法用于完毕表中的数据。指定单元格数。以及创建每个单元格。 要实现代理和数据源方法。

1.9K40

iOS AutoLayout全解

示例,:V: |-(0)-Label1-(0)-Label2-(0)-| 方向:从左到右,从上到下 V:表示方向为垂直方向,也就是竖向;H为横向。...高度 AutoLayout with UILabel 创建一个空的xib,命名为C1.xib, 然后拖入一个UITableViewCell控件。...接着创建一个UITableViewCell的子类,命名为C1类。然后在C1.xib中,将与C1类进行关联。只需要在Class那里写入关联的类名C1即可。 ?...Auto Layout with UITextView 同样参考上面我们创建一个C2.xib, UITableViewCell的子类C2,并关联C2.xib与C2类。...当非IB创建时,属性默认为YES;当IB创建View时,属性默认为NO。 案例2 在水平方向上放4张图片,图片等分。 1,首先在页面上拖拽1个imageView,将它的宽高都设置成50。

4.5K60

iOS的MVC框架之控制层的构建(下)

那么是不是要将所有的对象的创建都采用懒加载的形式进行创建? 答案是否定的。...视图的更新以及和数据模型的交互 最后我们再来说说令人烦恼的UITableViewCell的更新方法。UITableView是目前App中使用最多的控件之一。...UITableViewCell是属于视图层次的对象。一般情况下某个UITableViewCell中展示的数据又来自于业务模型层的数据模型。...更新一个UITableViewCell要做的事情其实就是将数据模型的变化反馈到视图中去,这里面同时涉及了视图和模型之间的耦合性问题。...视图持有模型 通过接口协议可以解决视图和数据模型的耦合性,其实在实际中我们的某些UITableViewCell就是专门用于展示某种数据模型的,从某种程度上说他们之间其实是有非常强烈的耦合性的。

4.4K30

iOS - 开发1年后对MVC新的理解

DataSource的封装代码 需要源码的可以加我 936101005 点个赞 ~ 拒绝伸手 二·Model层 Model层玩法就很多了,这里我通常使用单例保存在内存中看 -> 《iOS-使用GCD单例创建管理对象...] } struct UserModelBean: Coable { let userId: String let group: String } 解析 我的上一篇文章写了关于数据与模型绑定的文章...《NSArray与Model模型》,不熟悉的可以回过头看一看。..., strong) Model *model; @end @implementation Cell 但是外界数据模型没有一起变化, 暴露一个接口给外界刷新UI 导致了高偶合问题 - (void)setNum...麻烦的代码交给了封装的DataSource类中,但是还剩下一个Delegate代理没解决 MVC (最快上手架构) MV-Protocal (适用于复杂的多层回调) MV-Block (适用于简单的单层回调) 创建一个数据提供层

1.2K71

UITableView 组件化

的启发,M80TableViewComponent 提出了一种组件化的解决方案,实现类似 React.js 的 “单向数据绑定” 功能,同时将大量的重复计算归纳在组件内部,上层使用者只需要根据当前业务创建相应组件并组合使用即可...: - (Class)cellClass 当前组件对应 UITableViewCell 高度是多少: - (CGFloat)height 如何通过当前组件配置 UITableViewCell: - (void...)configure:(UITableViewCell *)cell 和 UITableView 联动 定义完组件后,我们只需要按照顺序将组件加入父组件中,即可完成和 UITableView 的绑定。...灵活组装功能 使用 M80TableViewComponent 可以轻易支持多种不同类型的数据模型,同时由于我们将复用层次从 vc/tableview 下降到 cell/section component...涉及单个 cell 的操作,直接使用 cell component 本身的方法, remove,reload 方法。

1.5K30

自学Swift之路(一)UI入手之基本控件

本系列文章都是以有OC基础来写的,所以注释不会写太多,对基础不够了解的同学可能不太适合,另外本系列文章不是以教程式的形式来写,是记录学习过程的,所以不会有多少讲解 第一步:创建工程 A62A869C-6B27...-46C7-96A7-77BF0FB21C66.png 创建好工程后,我们会进入这个界面 C18EA84A-89AF-4920-8824-1CF1F2CA8B8C.png 好了开始编程:写一个创建子视图的方法...,里面创建一些基本的UI控件,然后在viewDidLoad中调用: override func viewDidLoad() { super.viewDidLoad()...} 当然,别的方法也是一样,点击单元格: func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath...) { print("点击了单元格") } 好了,这篇文章的内容就到这里了,下一篇文章将会围绕UITableView,自定义UITableViewCell来写点可视化内容较强的东西

2.9K110

Swift 中 key paths 的能力

{ func configure(_ cell: UITableViewCell, for song: Song) { cell.textLabel?....尝试着去渲染标题,副标题以及图片而不用去管他们代表的是什么模型)- 因此让我们看看,我们能否用关键路径的威力去创建一个共享的配置实现,让他可以被任意的模型使用。...让我们创建一个名叫 CellConfigurator 的泛型,然后因为我们想要用不同的模型去渲染不同的数据,所以我们将会给它提供一组基于关键路径的属性 - 我们先渲染其中的一个数据: struct CellConfigurator...> func configure(_ cell: UITableViewCell, for model: Model) { cell.textLabel?....或许它还能变得更加的酷,当上面的代码跟更加先进的函数式编程思想结合在一起的时候,组合函数 - 因此我们现在可以将多个 setter 函数和其他的函数链接在一起使用。

1.6K10

Swift-MVVM 简单演练(四)

我们就需要再创建一个专门存储用户相关数据的模型HQUser class HQUser: NSObject { // 基本数据类型设置成`Optional` 和 private类型修饰的...[] { // 创建微博模型 let status = HQStatus()...class HQACell: UITableViewCell { var viewModel: HQStatusViewModel?...有专门负责加载数据的视图模型 有专门处理业务逻辑的视图模型 控制器和模型之间可以解除耦合 视图可以进一步拆分,各处耦合性都不是很大,而且又比较容易处理逻辑问题 但是现在为止,还没有完全发挥出视图模型的最大功能...不要动态创建控件,所有需要的控件,都要提前创建好,根据需要来隐藏/显示 所有的目的都是为了减少CPU的消耗,用内存来换CPU 设置认证图标 按照设置会员图标的思路来设置认证图标。

2.2K50

iOS-TableView统一数据源代理

TableView 是 iOS 应用程序中非常通用的组件,几乎每一个界面都有一个TableView,而我们许多的代码都和TableView有关系,比如数据展示、更新TableView,一些响应选择事件等...Int { return 10 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell...{ return UITableViewCell() } func tableView(_ tableView: UITableView, didSelectRowAt indexPath:...网络请求:这里是做网络请求地方,并且将请求后的数据保存在代理类中 刷新视图 确定cell的类型:cell是通过它注册identifier来创建的,所以根据indexPath来返回相应的cell注册的identifier...我们只需要将其赋值给cell即可 点击事件 上面这些步骤也不是固定的,这里有链式编程的思想,有些属性可以不设置则会取默认值,当然也可以重复设置,不过此时后面的会覆盖前面的 通过上面的方法,我们只需要创建一个

88810

Swift 中 key paths 的能力

{ func configure(_ cell: UITableViewCell, for song: Song) { cell.textLabel?....,副标题以及图片而不用去管他们代表的是什么模型)- 因此让我们看看,我们能否用关键路径的威力去创建一个共享的配置实现,让他可以被任意的模型使用。...让我们创建一个名叫CellConfigurator的泛型,然后因为我们想要用不同的模型去渲染不同的数据,所以我们将会给它提供一组基于关键路径的属性 - 我们先渲染其中的一个数据: struct CellConfigurator...> func configure(_ cell: UITableViewCell, for model: Model) { cell.textLabel?....或许它还能变得更加的酷,当上面的代码跟更加先进的函数式编程思想结合在一起的时候,组合函数 - 因此我们现在可以将多个setter函数和其他的函数链接在一起使用。

2.4K20
领券