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

UITableView基础1. UITableView作用2. UITableView常用属性3. tableView展示数据三部曲4. UITableViewStyleGrouped样式5. U

UITableView作用 以垂直滚动方式显示数据列表。 UITableView 两种内置样式:UITableViewStylePlain 和UITableViewStyleGrouped 。...2.5 UITableViewCellselectionStyle属性可设置被选中时背景颜色 属性名称 作用 UITableViewCellSelectionStyleNone 没有颜色 UITableViewCellSelectionStyleBlue...() 3.2 设置数据源 self.tableView.dataSource = self; 3.3 实现数据源方法 总共多少组 每组多少行 每组每行内容...{ return 10; } //返回每一组每一行显示什么内容 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath...但是可以初始化时候直接定义。

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

iOS-UI控件之UITableView(一)

两种样式只读属性 只读属性,代码不能修改 UITableViewStylePlain 一组显示Section = 1; UITableViewStyleGrouped 分组显示Section...),而且每一行用不一定是同一种UITableViewCell,所以一个UITableView可能拥有不同类型UITableViewCell,对象池中也会有很多不同类型UITableViewCell...,那么UITableView重用UITableViewCell时可能会得到错误类型UITableViewCell 解决方案:UITableViewCell有个NSString *reuseIdentifier...属性,可以初始化UITableViewCell时候传入一个特定字符串标识来设置reuseIdentifier(一般用UITableViewCell类名)。...UITableViewCell对象 不优化时内存分析 不优化时候 离开可视范围就销毁 频繁开辟内存,销毁内存 - (UITableViewCell *)tableView:(UITableView

1.7K130

UITableView 组件化

[1240] 源起 iOS 开发UITableView 可以说是最常用控件。几行代码,实现对应方法,系统就会给你呈现一个 60 帧无比流畅列表,让初学者成就感爆棚。...但也不是完美的:套路都是类似的,即使你熟练掌握了这些所谓设计原则,实际操作仍有大量重复代码。...数据源和 UI 不绑定 当 model 变化时,我们往往需要通过当前 model 位置反推出 cell UITableView 位置(即 indexPath),然后做相应更新处理,反之亦然。...M80TableViewCellComponent 顾名思义,他们分别对应 UITableView,Section 和 UITableViewCell。...: - (void)configure:(UITableViewCell *)cell 和 UITableView 联动 定义完组件后,我们只需要按照顺序将组件加入父组件,即可完成和 UITableView

1.5K30

iOS学习——UITableViewCell两种重用方法区别

今天开发过程中用到了UITableView,在对cell进行设置时候,我发现对UITableViewCell重用设置方法有如下两种,刚开始我也不太清楚这两种之间有什么区别。...直到我使用方法二进行重用时候,具体实现代码如下,其中CJMeetingReplyBasicCell是我自定义UITableViewCell类型,但是在运行时候每次都在调用 CJMeetingReplyBasicCell...源码UITableView.h对两者解释如下,我们可以看到方法二是iOS 6.0开始推出新方法,在对方法二解释,我们注意标红部分意思是假设我们已经注册了标识符,这里我们猜测可能是我们需要对标识符进行注册...//UITableView.h - (nullable __kindof UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)...第二个需要注意地方是,该页面下面有一个Important提示如下图,该提示就说明了方法二正确使用方法。这里解释说要先进行注册我们自定义或者通过nib类和标识符,然后再使用方法二进行重用。

1.1K70

iOS开发之UITableView联动实现城市选择器

iOS开发之城市选择器一文中用两列UIPickerView实现了城市选择器,今天用两个UITableView来实现一下,首先这种联动很多地方用得上,而且方法有好几种,我这里选择了个人喜欢一种方式...这种方式总体思路如下: 1、添加两个UITableView到当前控制器,分别设置它们尺寸,然后拖线到控制器 2、左边表格设置数据源和代理为当前控制器,然后显示数据,右边表格也设置数据源为当前控制器...3、监听左边表格控制器点击事件,点击事件刷新右边表格 这时候就有问题了,一个控制器要成为2个UITableView数据源和代理,怎么办?...—— 在数据源和代理方法,进行判断 if (self.leftTableView== tableView) {} else{} 具体步骤: 1、添加2个UITableView,设置约束...添加和准备工作.png 2、控制器实现功能,具体代码如下,注释非常详细: #import "ViewController.h" @interface ViewController () <UITableViewDataSource

2K60

iOS-UITableView 详解(一)

iOS-UITableView 详解 (一) ✨建议收藏,用到时候一查就明白了 UITableView可以说是iOS开发中最重要控件之一,它使用非常广泛,今天我们来学习UITableView使用...分组样式UITableViewStyleGrouped UITableViewCell UITableView每行都是一个UITableViewCellUITableViewCell样式我们可以通过...textLabel,左下方显示detailTextLabel(默认灰色),imageView可选(显示最左边) }; 简单使用 接下来我们先来完成一个简单UITableView使用 首先看一下数据结构关系...[arrayM addObject:[self carGroupWithDict:dict]]; } return arrayM; } @end 模型创建好了,我们就可以把他们显示UITableView...-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

1.2K50

【IOS开发基础系列】Table View开发专题

2.2 使用技巧 2.2.1 UITableViewCell去掉点击效果         相当于AndroidListViewselector设置成空/透明:     1.XIB设置         ...解决方案:           尽量将子视图layout操作放到layoutSubviews方法;另外,可以cell初始化时手动设置宽度: - (instancetype) initWithStyle...2.4.1.2 不要重复创建不必要table cell         前面说了,UITableView只需要一屏幕UITableViewCell对象即可。...当然,最佳解决办法还是继承UITableViewCell,并在其drawRect:自行绘制: - (void) drawRect: (CGRect)rect {     if (image) {        ...,优化时无意中解决了此问题,原来调用方法是A函数调用UIGraphicsGetImageFromCurrentImageContext(C函数)生成UIImage,然后传递给B函数去处理,这样内存会暴涨

26820

解决UITableViewCell重用机制导致内容出错方法总结

UITableView继承自UIScrollview,是苹果为我们封装好一个基于scroll控件。...上面主要是一个个UITableViewCell,可以让UITableViewCell响应一些点击事件,也可以UITableViewCell中加入UITextField或者UITextView等子视图...UITableViewcell可以有很多,一般会通过重用cell来达到节省内存:通过为每个cell指定一个重用标识符(reuseIdentifier),即指定了单元格种类,当cell滚出屏幕时...,会将滚出屏幕单元格放入 重用queue,当某个未在屏幕上单元格要显示时候,就从这个queue取出单元格进行重用。...比如,当一个cell含有一个 UITextField子类并被放在重用queue以待重用,这时如果一个未包含任何子视图cell要显示屏幕上,就会取出并使用这个重用 cell显示无任何子视图cell

2.3K50

iOS开发中行高灵活可变UITableView性能优化

iOS开发中行高灵活可变UITableView性能优化 一、UITableView构建原理         新闻类,电商类等应用,应用着大量图文混排视图,表视图UITableView,...开发通常会遇到一些十分复杂界面,而这些界面cell高度都是需要通过请求到数据动态改变,每个cell都要写复杂尺寸计算代码十分令人心烦。...iOS7系统之后,UITableView增加了一个estimatedRowHeight属性,顾名思义,这个属性是设置UITableViewCell大约行高值。...这个值设置之后,开发者无需设置rowHeight属性,也不需要实现heightForRowAtIndexPath方法,系统会自动根据UITableViewCellcontentView约束来计算自己行高...,如果开发者需要精准这个滚动条配置,可以如下代理方法返回具体cell估计行高。

1.9K20

iOS 架构组件:让你 TableView 优雅起来

>协议方法来配置布局逻辑,面向协议设计模式苹果代码设计很常见,它能适应大部分业务场景且足够灵活。...@end 然后UITableView相关各个协议方法里从NSArray layoutArray数组拿到数据配置就行了,如此,开发者只需要关心如何构建layoutArray...并且,一个CellLayout是解决不了问题,因为配置UITableView可能需要UITableViewCell一些数据,也需要一些通用方法来告知UITableViewCell何时配置数据刷新UI...取个例子,若你UIViewController里面写了一个UITableView,然后使用该组件配置数据,可以明确是组件将和<UITableViewDelegate...不过不管哪种方式来说都不太优雅了,在业务开发应该多考虑一下,UITableViewCell中会不会有大量事件需要传递到最外层业务,比如跳转界面、网络请求等就可以直接在UITableViewCell

1.7K40

RunLoop总结:RunLoop应用场景(三)滚动视图流畅性优化

为了表现出卡顿效果,我先自己实现了一下Cell,主要示例代码: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath...(这一点,相信大家都知道,要尽量避免主线程执行,一般都是创建一个子线程来执行,然后再回到主线程) 2.动态计算UITableViewCell高度,时间过久 iOS7之前,每一个Cell高度,...关于这一点,我以前做法是Cell定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储Cell对应Model(Model里定义一个属性来存高度),然后渲染Cell时,...这样在为Cell各个子控件赋值时,仅仅是取值、赋值,计算Cell高度时,也仅仅是加法运算。 3.界面背景色透明视图过多 为什么界面背景色透明视图过多会影响UITableView流畅?...简单说明一下,就是屏幕上显示所有东西,都是通过一个个像素点呈现出来。而每一个像素点都是通过三原色(红、绿、蓝)组合呈现出不同颜色,最终才是我们看到手机屏幕上内容。

2.1K41

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

列表显示,顾名思义它是一个列表视图形式显示屏幕上数据内容。于ios列表视图UITableView达到。这个类实际应用中频繁,是很easy理解。...UITableView定义头文件UITableView.h,详细定义能够查看官方文档;从定义能够看出,UITableView继承自UIScrollView类,因此支持方便地显示列表数据同一时候...详细使用过程,能够创建一个独立UITableView,也能够直接创建一个UITableViewController。...新生成ViewController.m文件里重写loadView方法,新建一个UITableView视图。 (别忘了把alloc视图dealloc函数释放。)...代理方法能够实现创建新视图控制器并控制其载入到屏幕上。

1.9K40

iOS开发之BLE(二)——外设连接与断开

iOS开发之BLE(一)——理论知识一文,主要对iOS开发BLE基本理论知识进行了介绍,本文以中心模式为例讲解蓝牙连接过程,并进行案例实践。...发现外设CBPeripheral后,对其进行标记或者存储到外设数组 选择外设进行连接 断开连接 案例 本文案例以一个UITableView展示周围可用外设,通过点击UITableViewCell选择外设进行蓝牙连接...StoryBoard界面.png ViewController 代码 重点是CBCentralManagerDelegate代理方法,这些方法会随着CBCentralManager方法调用进行对应回调...= selPeripheral //调用connect就会回调代理连接外设结果方法 self.centralManager.connect(self.peripheral...后台打印.png 注意问题 一定要真机测试 断开时候,一定要将 self.peripheral赋值为nil,否则第一次连接之后就再也连接不上了

2.9K20

UITableView性能优化-中级篇

老实说,UITableView性能优化 这个话题,最经常遇到还是面试,常见回答例如: Cell复用机制 Cell高度预先计算 缓存Cell高度 圆角切割 等等. . ....: 如果cell没进入到界面(还不可见),不会调用- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath...:(NSIndexPath *)indexPath去渲染cell,cell如果设置loadImage,不会调用; 而当cell进去界面时候,再进行cell渲染(无论是init还是从复用池中取)...cell 2基础之上,让所有的cell请求图片数据,并显示出来 步骤1: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath...答: 如果是下载完,回调中进行切割圆角处理,其实缓存图片是原图,等于每次取时候,缓存取出来都是矩形图片,每次set都得做切割操作; 问: 那是否有解决办法?

1.5K20
领券