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

优雅使用UITableView

痛点 我们iOS开发UITableView几乎是所有App都会使用一个UI控件,因为业务需要,我们常常会注册多种Cell,然后 - (UITableViewCell *)tableView:(...想一想展示一个UITableView过程 发起网络请求 JSON to Model,构造模型数组 数据填充 大致就是这三步吧。 其实在第二步构造模型数组时,我们是不是就可以确定好UI样式了?...] 再看celldequeue代码 [image.png] 数据绑定,全部分散到了每个cell。...高度计算 iOS8之后UITableView推出了Self-sizing功能,所以Cell高度改变 UIView *dummyView = [[UIView alloc] init...[image.png] 注意 用这个协议主要是方便代码阅读,而且Swift是必须使用协议,因为编译时找不到这个方法。

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

窥探Swift之协议(Protocol)和委托代理(Delegate)回调使用

说到协议,Objective-C也是有协议,并且Swift协议和Objc协议使用起来也是大同小异Java等现代面向对象编程语言中有接口(Interface)概念,其实和Swift或者...一.从UITableView来窥探协议委托代理回调     UITableView这个高级控件iOS开发出镜率是比较高,今天重点不是介绍如何使用UITableView, 而是让通过UITableView...上显示数据了,正常开放这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们TableView提供显示数据。...数据格式是一个数组,而数组存放是多个字典,每个字典有两个键值对,一个键值对存储要显示图片文件名,另一个键值对则存储美女名字。为了使该数据存储结构,请看下方结构图。 ?     ...上面的场景iOS开发中极为常见,使用场景也是比较广泛。所以协议无论Swift还是iOS开发中都是极为重要概念之一。

3.3K80

iOS10 Swift3.0 XCode 8 总结

1,iOS10 新增privacy settings iOS10添加了新权限控制范围 如果你尝试访问这些隐私数据时得到如下错误: > This app has crashed because it...NSCameraUsageDescription key with a string value explaining to the > user how the app uses this data 因为它企图访问敏感数据时没有应用程序...{ print("\(i)") }输出:3 2 1 0 8, Range新增至四种类型 Range CountableRange ClosedRange CountableClosedRange 不同表达式会生成不同...UIStatusBarStyleDefault; } 11, iOS10 UICollectionView 性能优化 iOS10 UICollectionView 最大改变是增加了Pre-Fetching...(10_0); 奇怪UITableView并没有找到 isPrefetchingEnabled属性定义 13,iOS10 UIScrollView 新增 refreshControl 属性 UIScrollView

74810

【死磕iOS】处理不等高TableViewCell小花招

return CGRectGetMaxY(self.bottomCub.frame); } @end 第四步:代理方法设置Cell高度 *注意:计算Cell高度过程...第一步:硬生生将每个Cell高度算出来,并保存在一个数组 第二步:heightForRow方法返回相应CellHeight #import "CalculatorViewController.h...方案三:cellForRow代理方法算 说明:其实,要隆重介绍是方案三~ 思路: 既然想知道Cell高度,那么一定是Cell自己最懂自己有多高啦(面向对象思维)。...那么,在哪里能拿到Cell和Cell高度呢? - 当然是CellForRow代理方法啦! 但是,CellForRow拿到Cell高度后,如何传递给heightForRow代理方法呢?...- 可以将Cell高度保存在一个数组,或者保存在Cell对应Model~ 但是,我们知道系统对tableView代理方法调用顺序,是先调取heightForRow再调取cellForRow

1.3K80

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

@end 问题来了回到工程项目需求,每个cell都有增加减少按钮 而且需要有选中效果在View层.意味着MVC架构模式View层对Model进行了修改....这里不给出DataSource封装代码 需要源码可以加我 936101005 点个赞 ~ 拒绝伸手 二·Model层 Model层玩法就很多了,这里我通常使用单例保存在内存中看 -> 《iOS-...使用GCD单例创建管理对象》 第二种玩法是通过Swift混编,我们来对比一下Model层不同 定义 OC层 @interface Model : NSObject @property (nonatomic...我会使用MJExtention封装好三方框架来解析数据 mj_objectArrayWithKeyValuesArray Swift层 通常解析数据会根据后台数据结构返回来JSON进行匹配...swift会有点麻烦 我们拿一个 数据里嵌套数组来作为例子 @objc public class Model: NSObject { init(bean: ModelBean) {

1.2K71

iOS 9 Storyboard 教程(一下)

工程添加一个新文件.然后 iOS/Source选项,选择Cocoa Touch Class模板.给这个类命名为PlayersViewController并且把它设置为UITableViewController...这个table view应该会显示一列玩家名单,所以现在你需要为这个app创建一个数据模型—一个包含Player对象数组.使用Swift File模板iOS/Source里为这个工程添加一个新文件....plist文件或者SQL文件取,所以视图控制器外部加载数据是很明智....现在你有一个包含很多Player对象数组.你可以继续PlayersViewController里链接数据源.用下面的方法替换table view数据源: override func numberOfSectionsInTableView...,并将其分配给player. 3.可以看到标签和图片数据来自player对象.

3K20

iOS开发常用之完整项目加、文章

DeckRocket - 相同WiFi网络环境内,通过iPhone控制并播放MacPDF文档。...ScanBook - 扫扫图书:可以扫描条形码查询图书,也可以关键字搜索,遇到合乎你口味书,还可以看看别人读书笔记,不同角度去体会。...XXYAudioEngine.swift - 基于NSURLSession和AVAudoPlayer在线音乐工具,可以把音乐保存在本地,也可以支持后台播放,后台下载,最低支持iOS7,swift版本...LeagueofLegends - 一个关于英雄联盟完整iOS开源项目,接口均来自多玩,腾讯各大游戏平台。...-标哥技术博客 XCFApp-1 -高仿下厨房应用,Objective-C,Xcode7.2,数据通过查尔斯抓,有接口也有本地数据说明:关于代码被清空,会用GIT你肯定明白,教程 XCFApp

2.2K21

swift4.0语法杂记(精简版)

比如UIColor.red swift不需要用分号分割语句 三、常量和变量 1、数据类型 swift也有各种数据类型来存储不同信息。下表列举是常见数据类型变量。 ?...但其实,swift,是不存在基本数据类型,所谓数据类型,其实都只是结构体。这也是swift一个特点。 ? 2、变量和常量 声明 swift中用let声明常量,用var声明变量。...swift对类型严格要求 swift,任何不同类型数据之间是不允许直接运算。比如下面这段代码就会报错。...数组是有序数据集,集合是无序无重复数据集,而字典则是无序键值对集。 数组使用有序列表存储同一类型多个值。相同值可以多次出现在一个数组不同位置。...二十二、swift4新特性 以下内容来自 最全 Swift 4 新特性解析 感谢大佬提供学习资源!!! 1、语法改进 扩展extension可以访问private属性 举一个简单栗子?!

15.1K90

iOS开发常用之网络

此项目应该只用于演示或学习之用,没有服务器 - swift。 Atlas-iOS - 快速iOS里集成聊天功能,类似开源版本环信.Layer家开源了一套聊天app界面的解决方案。...LLNoDataView - 超简单数据提示通用View支持UIScrollView,UITableView,UICollectionView,UIWebView。...MGSwipeTableCell - 另一个常见于很多应用UI组件,苹果应该考虑标准iOS SDK中加入一些类似的内容.Swipeable表格cell是这个pod最佳描述,也是最好。...答案选择切换页 - 将scrollview和tableview封装在一起,初始时候简单数据带上,就可以一页一页左右来回滑动。...DisplaySwitcher.swift - 两个集合视图不同布局(平摊和列表)间平滑切换.Yalantis出品。

23.5K10

自学iOS开发,从新手小白到高级工程师正确打开方式

(2)语言数据结构有哪些。一般有数组、字典、各种容器等。 (3)语言基础语句。if-else、switch-case、while、for等。 (4)语言面向对象特性(如果是面向对象语言的话)。...例如OCUITableViewdataSource和delegate;GCD或者NSOperation开辟线程执行任务相关方法;NSDictionary、NSArray相关增删查改方法;JSON...同时项目开发承担一些核心工作,使用C对一些底层进行封装。而不是写一些界面布局,数据获取处理等操作。而且写博客时,更加着重于如何去优化性能、如何去创造新东西。...但是如果你真想走编程这条不归路,你最好还要学习数据结构、计算机网络、操作系统这些知识,虽然这些东西实际开发中用到很少,但是如果不学这些基础,你成长过程中会遇到瓶颈。...愿大家iOS挖坑道路上越挖越深。。。如果有一天爬不出来了,希望不要来揍我。

1.7K80

iOS 面试策略之算法基础4-5节

要知道,这些数据结构都不是单独存在,我们解决二叉树问题时,用到了队列;解决数组问题,也会用到字典或是栈。...Swift ,用 let 和 var 地方要区分清楚,该不该定义数据为 optional,有没有处理 nil 情况都是很容易忽略。 5....排序和搜索 前几节,我们主要探讨了数据结构:比如数组、链表、队列、树。这些数据结构都是了解 Swift 和算法基础。从今以后文章,我们将更多关注于通用算法,这次我们就来聊聊排序和搜索。... Swift ,排序使用如下: // 以升序排列为例,原数组可改变 array.sort() // 以降序排列为例,原数组不可改变 newArray = array.sorted(by: >)...} Java ,其自带 sort 函数部分是用归并排序实现。而在 Swift 源代码,sort 函数采用是一种内省算法(IntroSort)。

79160

老司机 iOS 周报 #77 | 2019-07-29

Language APIs in iOS 13 @AidenRao:去年,Apple 推出了 NaturalLanguage 框架,用于分析自然语言文本并推导其特定于语言数据。...瀑布流这种滚动展示图片列表,可以使用计时器统计活动图片,为活动图片加载剩余部分。...文件,然后源文件 ["m", "swift", "xib", "storyboard"...] 字符串匹配,无匹配则是无用资源文件。...而今天推荐这款工具,可以帮我们自动生成 iOS 文档,文章作者也简单示范了下,还是很容易上手,推荐经常需要写文档同学试一试。...M80TableViewComponent @anotheren:来自网易 UITableView 组件化解决方案, 不用再和 IndexPath 及数组越界打交道 权责分离,和冗长 UITableView

93030

一样iOS开发程序员为什么有人4k有人40k?原因就在这里!

多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,多次重构和思考过程,我们就会慢慢积累出一类问题 “最佳实践” 方式,成为自己宝贵经验。...用 Swift 来完成 App 还有一个不大不小问题就是体积会比较大,因为 Swift 相关库会直接打包进 App 。...我个人对于 Swift 预期是: 1、2 年内能够全面替代 Objective-C。但在近期,我个人还是会使用 Objective-C 来完成公司项目。 二,iOS 开发者应该如何自我提升?...例如:ObjcUITableViewdataSouce和delegate;NSDictionary、NSArray相关增删查改方法;JSON数组转换方法;文件操作方法等。...五,学习ios开发应由浅入深,循序渐进。 掌握了初级框架就可以编写简单ios程序了,包括简单本地数据、图片、照片、音视频、地址簿、邮件、日程等读写和显示。

79700

你知道iOS开发工作为什么有人4k有人40k吗?

多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,多次重构和思考过程,我们就会慢慢积累出一类问题 “最佳实践” 方式,成为自己宝贵经验。   ...用 Swift 来完成 App 还有一个不大不小问题就是体积会比较大,因为 Swift 相关库会直接打包进 App 。...我觉得你提这个问题根本还是在于:iOS 开发者到底热不热爱编程。在我看来,任何一件事情,如果你做到了热爱它,把它当作乐趣,那么同行做到出类拔萃应该是理所当然。...例如:ObjcUITableViewdataSouce和delegate;NSDictionary、NSArray相关增删查改方法;JSON数组转换方法;文件操作方法等。   ...多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,多次重构和思考过程,我们就会慢慢积累出一类问题 “最佳实践” 方式,成为自己宝贵经验。

2.8K90

iOS怎样创建可展开Table View?(下)

接上篇:iOS怎样创建可展开Table View?...响应其他用户操作 CustomCell.swift文件,你可以发现CustomCellDelegate协议所需代理方法都已经被声明.通过ViewController类里实现它们我们需要设法让app...,我们直接将选中日期设置为了一个字符串.注意,这个字符串代理方法是一个字符串....tableView方法,主要特点就是一个plist文件,所有cell描述都使用具体属性.我向你展示了当cell显示,打开或是选中时候,如何使用代码处理cell描述列表;此外,我给了你一个方法通过用户输入数据来直接更新它...(例如,将cell描述列表保存到文件),然而,那已经超出了我们目标;我们最开始所想是实现一个可展开tableView,根据需求显示或隐藏cell,以及我们最终所做.我相信,在这篇教程你会找到左右有用信息

1.5K30

用这些 iOS 技巧让你 APP 性能更佳

如果你应用程序完成启动后包含着与启动页看起来不同元素,那么用户则可能会在启动页到应用程序第一个页面的过程感到令人不快闪屏。」 「启动页并不是一个做品牌推广机会。...为了实现状态保存和恢复,我们可以 AppDelegate.swift 实现下面两个方法: func application(_ application: UIApplication, shouldSaveApplicationState...我们可以 Interface Builder 中将视图设置为不透明: ?... storyboard 中将 UIView 设置为不透明(查看大图) 或者我们可以代码修改 UIView isOpaque 属性: view.isOpaque = true 将视图设置为不透明将使绘图系统渲染屏幕时优化一些绘图性能...如果视图具有透明度(即 alpha 低于 1.0),那么 iOS 将需要做些额外工作来混合视图层次结构不同视图层以计算出哪些内容需要展示。

3.2K30
领券