使用UITableView 简化登录注册界面

感觉有些时间没写iOS的东西了,主要是大神们都已经把该讲的都讲清楚了,<code>实在不敢弄斧班门</code>前段时间看到一篇巧用状态值处理复杂的 TableView文章,思路另辟蹊径,值得学习,但通篇看下来后<code>发现没有code demo,有些撩人啊</code>,本着学习的态度,根据该文章的方法,写了个示例工程loginTableDemo,希望能对看了该文章的人在实践上有所帮助,同时欢迎大家指出代码中的不足,<code>没有优化处理,有不少冗余的code</code>. 不废话,先上效果:

demo

坑与细节

  • 原文中的<code>func transitionToViewState(newState: AuthViewState)</code>仅是方案,不能直接用的.具体的切换要自己实现.
  • 不同的内容,要分成不同的cell,然后用tableView根据状态来加载<code>这里也可以使用一个cell ,然后根据不同的枚举值,生成cell里的显示内容</code>,这两种方式各有利弊,我个人倾向使用不同的cell,简化枚举逻辑,但增加了cell种类,<code>大家按喜欢的来就好了</code>
  • 与直接使用<code>UIView + UITextField + UIButton</code>的界面对比,使用<code>tableView</code>的方案增加了数据传递的成本,cell中的<code>按钮点击事件</code>和<code>文字输入事件</code>与<code>controller</code>之间比较松散,我的示例中,使用了protocol的方式,有兴趣的可以换成闭包方式看看,<code>也许可以更精简一些.</code>
  • 整个界面UI非常朴素,就一个tableview,感觉逻辑也清晰,<code>并且天然的具有动画效果</code>,看起来还不错.
  • 项目中使用的SwiftLCS这个库处理集合很方便,也是项目的主要功臣,值得推荐.
  • <code>tableView</code>切换状态时,要先删除后添加,<code>同时要记得修改数据源的对应数据</code>
  • 项目使用<code>swift</code>实现,代码也简单,<code>相信使用Objective-C的同学</code>也可以看懂
  • 最后,项目中<code>Login文件夹(模块)</code>可以直接拖到其他项目中使用,只需修改一下UI就是你自己的了.<code>喜欢的就赞一个吧</code>

结束语

就像巧用状态值处理复杂的 TableView文章中最后提到一样,把UIKit想的深一点,会有更多的可能~<code>共勉,共勉</code>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习实践二三事

sklearn系列之----开山篇

最近在学习深度学习,之前搞了段时间的caffe,但是caffe的优点在classification,对于想学习DL的我们还是需要从基础的学起,比如regress...

20590
来自专栏Crossin的编程教室

10个对Web开发者最有用的Python包

Python最近成为了开发人员最喜欢的语言之一。无论你是专业的,业余的,还是一个初学者,你都可以从Python语言及其程序包中受益。Python已经被证明是当今...

33970
来自专栏VRPinea

撩妹必备技能之:如何用Unity 3D创建一个VR场景?

3.3K40
来自专栏腾讯Bugly的专栏

《客厅TV-APP首页瀑布流后台猫腻细窥》

1、项目概况 横版式已经持续使用了约2年,内容排布、主题细分、露出效率、操作便利等方面都有一些不足。而瀑布流则能很好的解决这些不足,在业界已经是一种通用的做法。...

586100
来自专栏Guangdong Qi

iOS开发常用之网络、网页

42010
来自专栏Jackson0714

【Discuz】关闭QQ互联插件提示信息:系统繁忙,请稍后再试

352110
来自专栏AhDung

【C#】让ReSharper灰色显示未使用的非私有成员的关键

1、在Inspection Severity中设置Non-private accessibility为Warning。如图:

16820
来自专栏Jerry的SAP技术分享

SAP UI 搜索分页技术

搜索分页技术往往和另一个术语Lazy Loading(懒加载)联系起来。今天由Jerry首先介绍S/4HANA,CRM Fiori和S4CRM应用里的UI搜索分...

27840
来自专栏SAP最佳业务实践

SAP最佳业务实践:MM–组件收费的委外加工(251)-10清帐

4.12 清帐(基于消耗) 提供的组件过帐到了应收,它将抵销对应的应付金额。 完成对委外加工费用的付款。只有当你支付了委外加工费,系统才允许你冲销可抵扣的应付帐...

45860
来自专栏数据小魔方

数据地图系列7|R语言版(上)

今天跟大家分享的是数据地图系列的第七篇——使用R语言制作热力数据地图! 也许很多小伙伴儿对于R语言还很陌生,感觉很神秘。 确实,R语言的数据地图需要使用很长的代...

41940

扫码关注云+社区

领取腾讯云代金券