####swift 几个比较好的UI库 swift UI库

###1.tableView的代理方法

在swift中代理变得更加重要,当在继承代理的时候,代理的require方法必须实现,否则直接就报错。 但是这个报错一点也不友好,下面这个例子就是先写了代理,还没有实现其代理方法,引入的时候直接报错了.But,在Xcode 9版本修复这个问题,错误提示很友好了。

这报错提示“Type 'UIViewController' does not conform to protocol 'UITableViewDataSource'” 简直一脸懵逼啊,查了好久才知道原来是代理方法没有写,写了其require方法就好了。

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return 5}func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell: UITableViewCell = UITableViewCell.init(style: .default, reuseIdentifier: "cell")cell.textLabel?.text = "row + \(indexPath)"return cell}
复制代码

####2.如果定义tableView是grouped类型,默认是有sectionHeader 和 sectionFooter的,即使你没有实现,也是有一个灰色View在上面。如图

这时候,你不想要header或是footerView,

1.将tableView定义成plain类型,默认就没有header和footerView了 2.实现header或footerView的高度代理方法,设置一个极小值即可

    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {return 0.0001}func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {return 0.0001}
复制代码

####3.tableView 注册cell方法

        collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
或者collectionView.register(UICollectionViewCell.classForCoder(), forCellWithReuseIdentifier: "cell")tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
复制代码

暂不知道什么区别,都可以好像。 自定义cell注册的时候好像就要用self了。

swift中对基本知识的要求更高了,基本知识必须掌握牢。

因为这里对了好多安全机制,有些异常不会报错,但是就是不会出你要的结果,很难排查,所以要有更好的基础知识。 遇见的小坑,以后慢慢填坑。。

swift开发的小坑相关推荐

  1. 微信小程序中开发的小坑

    微信小程序中开发的小坑 本文随时更新微信小程序开发过程中遇到的小坑.现已收集如下. 微信小程序编译后的大小不能超过1MB. 微信小程序不能建立两个(含)以上的WebStock连接.

  2. ThinkPHP开发中遇到的小坑

    TP不得不说是现在来说最好用的框架了,但是也不能不承认它还是有一些小坑需要填了. 1.坑爹的字段缓存机制 thinkphp为了高效的读取数据库,更快的打开网页,加入了字段缓存这个机制,其实来说是挺好的 ...

  3. 开发微信小程序 中遇到的坑 及解决方法

    开发微信小程序 中遇到的坑 及解决方法 参考文章: (1)开发微信小程序 中遇到的坑 及解决方法 (2)https://www.cnblogs.com/feiye512/p/6070052.html ...

  4. 500错误码,前端开发遇到的小坑

    500错误码 前端开发 先给大家放一下工程开发中遇到的问题截图: 500错误码的官方解释是: 500服务器内部错误(Internal server error)主要是由于IWAM账号的密码错误造成的. ...

  5. 微信公众号开发小坑:确认访问的微信是否为已关注公众号,秘钥使用全局access_token不能使用局部变量access_token

    环境说明: 1.项目功能:年会抽奖活动开发,子功能:获取客户的相对公众号的唯一oppenid,然后确认是否关注本公众号,关注则获取客户信息后发抽奖券保存,否则先关注微信公众号: 2.java环境:SS ...

  6. 微信小程序开发的那些坑,你踩过吗?

    微信小程序开发的那些坑,你踩过吗? textarea组件value不显示 textarea组件默认值绑定data数据真机不显示问题 |?链接 使用.switchTab跳转到tabbar页传递参数问题 ...

  7. 苏宁:我们开发百度小程序遇到的那些“坑”

    2018年5月,受百度邀请,苏宁首批入驻百度小程序平台.作为微信小程序的开发工程师,我接手了"开荒"百度智能小程序(以下简称百度小程序)的任务,自5月初开发,一个多月就完成了苏宁易 ...

  8. 微信小程序 短剧开发技术踩坑指南 仿抖音快手小视频

    1.Video组件 微信官方文档地址: https://developers.weixin.qq.com/miniprogram/dev/component/video.html uniapp官方文档 ...

  9. swift开发体验,论objective-c与swift的选择

    使用swift开发已经有半年之久了,期间做了一个电商应用,类似京东,苏宁的.主要谈谈感受,swift简洁的语法,不用写分号,所有自己写得工具类,第三方类库,都能自动import,着实令人大呼过瘾. 但 ...

最新文章

  1. echarts x轴文字个数太多_echarts x轴标签文字过多导致显示不全,最有效的3种解决方法...
  2. 在 Linux 终端调整图像的大小
  3. 主成分分析(Principal components analysis)-最大方差解释
  4. machine ID问题 ( u-boot设置machine id , set mach_type 0x16a )
  5. python学习笔记列表和元组(三)
  6. Git 学习笔记之 merge
  7. c# mysql ef框架_首页 C# EF6数据库第一-EF试图创建我的数据...
  8. 转:SQL:外连接on条件与where条件的区别
  9. Android Studio 添加javah工具
  10. 单例模式的懒汉模式跟恶汉模式的区别
  11. 数仓建模—建模工具PdMan
  12. 蓝蓝设计 使用全屏照片的网页设计欣赏
  13. 【C语言】简单的闰年计算
  14. 【欧拉降幂公式】【欧拉函数】
  15. kubernetes【k8s】adm方式安装[超级详细]
  16. 设计一个用户注册页面,对用户输入的内容进行有效性验证,如用户名和密码不能为空,两次输入的密码必须相同,邮箱地址必须包含“@”符号等。
  17. Corg.quartz.JobPersistenceException: Couldn‘t retrieve trigger
  18. PPT图片瘦身/图片提取
  19. 卷积神经网络(CNN)详细介绍及其原理详解
  20. python图像分割算法_用python实现随机森林图像分割

热门文章

  1. FFmpeg纯净版解码 av_parser_parse2
  2. P1179: [Apio2009]Atm
  3. 【LeetCode】15.Longest Common Prefix
  4. 模式实例之——访问者实例
  5. 多租户系统技术优越性及架构选型---springCloud工作笔记167
  6. ES6新特性_ES6箭头函数以及声明特点---JavaScript_ECMAScript_ES6-ES11新特性工作笔记009
  7. VB.NET工作笔记015---vb.net获取cpu使用率,内存使用率_未能找到具有指定类别名“Processor”、计数器名“% Processor Time”的性能计数
  8. web前端工作笔记008---jQuery table jstable的使用方法,字符串太长显示...初始化显示数据
  9. 面试题 数组长度可否赋值
  10. 初学angularJS 个人总结 错误排除