注册 登录
筛选: 全部
主题 : IOS开发之纯代码界面--基本控件使用篇
级别: 精灵王

UID: 41025
精华: 0
发帖: 1519
可可豆: 1018 CB
威望: 6260 点
在线时间: 603(时)
注册时间: 2010-12-03
最后登录: 2018-04-11
0 楼:  发表于: 2013-01-06 14:22    发自: Web Page

IOS开发之纯代码界面--基本控件使用篇   

  • 分享类型
[20160505] 写一篇能被大家回复好几年,甚是感谢!最近打算做教程,有兴趣的加我的群 545356976
----------------------------------------------------
刚学IOS开发的时候,跟着书本也用过苹果的拖动摆放图形界面是不是叫UIBuilder???
后来不知什么时候就不用了,现在回头看看,那些工具就是在误导,让你以为很简单,但是用好很难,维护起来。。。。不说了。你懂得。

那么现在我们就看看纯用代码写界面到底有多难?

首先我们要记住一点,在界面上你所看到的基本都是UIView这个类,即:一切都是View!我们不过是在用View来堆叠我们的界面罢了。

第一课:在程序中添加 UIWindow。UIWindow也是UIView的子类,这个是我们的程序窗口,我们一个程序的最基本承载界面(其他的界面都是添加到这个窗口上的)。
LWindow.zip (34 K) 下载次数:5512

第二课:在程序中添加 UIView。这回我们打交道最多的主角出现了,这个Demo我们练习用几句代码在Window上添加一个View。
LUIView.zip (29 K) 下载次数:3768

第三课:在程序中添加 UIViewController----视图控制器,即MVC模型中的V和C,集视图和控制于一身,但终归他也是个视图,这demo我们学习怎样在window上添加一个ViewController。UIViewController也是以后程序开发中最常用的子视图(就是你手机的每个跳转页面)承载界面。
LUIViewController.zip (33 K) 下载次数:3670

第四课:在UIViewController上添加 UIView UIImageView UILabel。这节demo我们学习在UIViewController的View上添加 UIView UIImageView UILabel。
LUIViewUIImageViewUILabel.zip (35 K) 下载次数:3437

第五课:在UIViewController上添加 UITextField UITextView UIButton。这节demo我们学习在UIViewController的View上添加 UITextField UITextView UIButton。
LUIButtonUITextFieldUITextView.zip (37 K) 下载次数:3307

第六课:在UIViewController上添加 UIScrollView。
LUIScrollView.zip (34 K) 下载次数:2274

第七课:在UIViewController上添加 UITableView。
LUITableView.zip (33 K) 下载次数:3226

第八课:自定义 UITableViewCell。
LUITableViewCustomCell.zip (53 K) 下载次数:4269

第九课:UIViewController之间的导航 跳转。
VCNavDemo.zip (38 K) 下载次数:3478

第十课:使用UITabBarController建立底部切换导航的程序界面。
LUITabBarViewController.zip (36 K) 下载次数:3426
[ 此帖被oran_dlut在2016-05-05 11:48重新编辑 ]

级别: 圣骑士
UID: 53048
精华: 0
发帖: 650
可可豆: 1908 CB
威望: 1915 点
在线时间: 478(时)
注册时间: 2011-02-24
最后登录: 2016-06-02
1 楼:  发表于: 2013-01-06 15:25    发自: Web Page
谢谢分享!
级别: 侠客

UID: 167523
精华: 0
发帖: 176
可可豆: 347 CB
威望: 286 点
在线时间: 386(时)
注册时间: 2012-09-19
最后登录: 2019-01-15
2 楼:  发表于: 2013-01-06 16:19    发自: Web Page
看了一课 楼主写的不错 研究研究
级别: 新手上路
UID: 146213
精华: 0
发帖: 25
可可豆: 45 CB
威望: 25 点
在线时间: 189(时)
注册时间: 2012-05-31
最后登录: 2018-03-02
3 楼:  发表于: 2013-01-06 22:08    发自: Web Page
加油,大哥
级别: 新手上路
UID: 200335
精华: 0
发帖: 3
可可豆: 3 CB
威望: 3 点
在线时间: 78(时)
注册时间: 2013-01-06
最后登录: 2017-08-14
4 楼:  发表于: 2013-01-06 22:41    发自: Web Page
太感谢你了
级别: 新手上路
UID: 161287
精华: 0
发帖: 8
可可豆: 8 CB
威望: 8 点
在线时间: 22(时)
注册时间: 2012-08-15
最后登录: 2014-07-20
5 楼:  发表于: 2013-01-06 23:43    发自: Web Page
顶~~~~
级别: 新手上路
UID: 147112
精华: 0
发帖: 2
可可豆: 2 CB
威望: 2 点
在线时间: 2(时)
注册时间: 2012-06-05
最后登录: 2013-06-17
6 楼:  发表于: 2013-01-07 00:22    发自: Web Page
觉得在IOS开发中了解界面控制代码的实现是很有必要的。
然而IB并非如楼主所说的那么一无是处。事实上,使用IB维护界面设计比起直接维护代码要廉价很多,关键是你对IB有多的熟悉。
使用IB维护界面难有所误导。

我个人学习IOS界面开发的历程是:IB->Code->IB。我个人的经验是,可以用IB解决的尽量不使用代码。
注:我这里所说的IB主要是指IB的xib界面设计,而不是storyboard。(storeboard的引入,我个人是比较有保留的)

我这里仅仅提出两点来说明为何要尽量使用IB:

1. 在正确使用IB进行开发的时候,等同接受了某种界面代码规范。
这种规范能够使得控件的设定与控件之间的逻辑分离。如果将这种控件的设计全部写成代码将让源文件变得非常难以阅读,维护也相当困难。譬如说,你的界面上有20个控件,而每个控件都用代码来定出坐标,文字,背景,背景颜色。。。这样的代码将相当难以阅读。

2. 快速响应界面的需求变更。
在实际的开发当中,在应用临近上线之时,往往需要应对突然而来的关于界面变更的需求。这种变更往往不是大的界面上布局上的需求,而是琐碎微小的变更。此种情况下,显然在IB进行快速的可预示的修改要比直接对代码的修改有效快速。

最后,对IB的使用及性质,给一个提示:IB与很多的UI编辑器的区别在于,很多这些编辑器是解释形的,它们尝试解释你的代码,将代码的UI设计可视化。但是IB是注入形的,他更像java的spring那样对你的代码注入在Xib中设计好的UI (其实也不局限于Ui )对象。

PS:
理性的批判身边的开发工具,果断的抛弃使用它们,这可以是一条正道。
客观的审视手上的开发工具,合理的调整自己的开发模式以配合这些工具也是一条正道。

清空我的评分动态本帖最近评分记录: 共1条评分记录
rainbird 可可豆 +5 2013-01-07 表示支持~
隐藏评分记录
级别: 精灵王

UID: 41025
精华: 0
发帖: 1519
可可豆: 1018 CB
威望: 6260 点
在线时间: 603(时)
注册时间: 2010-12-03
最后登录: 2018-04-11
7 楼:  发表于: 2013-01-09 16:52    发自: Web Page
回 6楼(bluedimple) 的帖子
1、你显然把ViewController当成你的调色板了,把所有的控件属性定制都写在VC上是不合适的,VC于我只是摆放控件+逻辑组织的地方,至于控件定义则根据页面需要定制自己的子View(如微博的个人信息部分,这个可以封装成一个单独的view),这样在使用的时候我们只需要 -------初始化VIew+添加View+逻辑控制(在合适的地方做赋值等控制)---------

2、相同的控件只需要定义一个,重复使用就好,至于修改,那修改相关的定制View即可,效率不比IB低。

最后,我对IB的印象仅停留在初级阶段,它是个工具,用熟的人自然顺手,但是个人还是觉得代码顺手,且方便管理。

大路朝天,各走一边,祝好!
级别: 精灵王

UID: 41025
精华: 0
发帖: 1519
可可豆: 1018 CB
威望: 6260 点
在线时间: 603(时)
注册时间: 2010-12-03
最后登录: 2018-04-11
8 楼:  发表于: 2013-01-09 16:56    发自: Web Page
Re:回 6楼(bluedimple) 的帖子
引用
引用第7楼oran_dlut于2013-01-09 16:52发表的 回 6楼(bluedimple) 的帖子 :
1、你显然把ViewController当成你的调色板了,把所有的控件属性定制都写在VC上是不合适的,VC于我只是摆放控件+逻辑组织的地方,至于控件定义则根据页面需要定制自己的子View(如微博的个人信息部分,这个可以封装成一个单独的view),这样在使用的时候我们只需要 -------初始化VIew+添加View+逻辑控制(在合适的地方做赋值等控制)---------

2、相同的控件只需要定义一个,重复使用就好,至于修改,那修改相关的定制View即可,效率不比IB低。

最后,我对IB的印象仅停留在初级阶段,它是个工具,用熟的人自然顺手,但是个人还是觉得代码顺手,且方便管理。
.......


“ 我个人学习IOS界面开发的历程是:IB->Code->IB。我个人的经验是,可以用IB解决的尽量不使用代码。”

这样你还是使用IB+代码,对于同一个View,这样分开设置属性等,真的易于别人理解+管理么?

级别: 侠客

UID: 109680
精华: 0
发帖: 90
可可豆: 378 CB
威望: 378 点
在线时间: 31(时)
注册时间: 2011-12-05
最后登录: 2019-01-13
9 楼:  发表于: 2013-01-09 20:55    发自: Web Page
我能偷偷的收藏了么嘛

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部