A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 呉HENG 中级黑马   /  2017-6-15 22:48  /  1471 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现。其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起来并且赋予它们更具生命力的事件,还是需要一番功夫的。

UIButton

这个就不多说了,对照文档可以更多的去学习。所以在学习这些组件的时候最好的方式还是通过文档,虽然已开始可能有些困难,但是硬着头皮去啃,就一定会有悟道的那一天。建议有问题先去看文档,如果实在不行再去Google啊,Stack Overflow啊神马的。

UIAlertController

弹出式的提示框。现在市面上的书籍包括网上的一些资料都还停留在iOS8之前的时代,那个时候的弹出框是一个叫做UIAlertView的东西,但是现在,在XCode7和iOS9的时代,你会发现这个东西被弃用了。苹果自iOS8开始,废除了UIAlertView而改用UIAlertController来控制提示框。

来看看UIAlertController的实现吧,下面这个程序是我在练习UITableView时的代码,实现了一个类似与通讯录的东西,我们抓住主要矛盾,来看点击某一行cell后,弹出的消息提示框是怎么实现的。

网上是没有任何关于最新的UIAlertController的使用教程的,我自己用了整整一个下午看官方文档一步一步调试才实现了这个恼人的提示框。官方的文档真的是个好东西,越用越强大!!

UISegmentedControl

分段控件,就是一栏按钮集成在一排里。很简单,就像Button一样。


UISwtich

按钮控件,手机里开飞行模式的那个东西。通过Storyboard可以很快很方便的建立,不要忘了关联起来就好。

这里简单讲一下它的纯代码实现,其实包括上面的UISegmentedControl,还有下面的一些简单控件它们手写实现的方法都是一样的。截张图给大家说明一下就好了,都是一样的,后面的类似的控件也不多啰嗦了。



进度条型的选择控件,对应数值,可以进行设置音量等操作,根据官方文档可以看到很多关于它的设置,基本实现同上。

UIPageControl

这是个好东西。
这是个好东西。
这是个好东西。

重要的事情说三遍。个人认为,它虽然很小,但绝对逼格够高,搭配UIScrollView,绝对让你的界面高端起来。

关于这个的代码不小心被我删掉了,没法给大家展示,不过过几天我会用这个做一个APP的欢迎界面,到时候再展示咯。

UITextField

简单控件,可以参考先前的传值操作(传送门:iOS开发——从一道题看Delegate),基本上把这个的用法实现的差不多了,要想更多地设置它————官方文档见。

UIDatePicker

顾名思义,日期选择控件。实现同上。

UIScrollView

有的时候呢,我们的照片,或者图片会很大,而允许我们输出的窗口却不够大,那么我们就需要这个家伙来帮忙了,它可以让一张图片在一个视图里滚动展示,效果类似于。。。做B超?

UITextView

还是一个可编辑文本框,与先前的UITextField不同的是,这个可以显示更多行的内容,还可以对他进行编辑的监控,通过代理方法,我们可以获取该文本框中的内容,在实际的应用中,发布什么长微博啊,文本啊,都能用到它。


UIToolbar

开发中经常会用到的控件之一,实现起来也很简单,与此同时我们还要知道UIBarButtonItem 和 FixedSpace Bar Button Item,这两个小东西是在Bar上的按钮和间距,都被对象化了。


UIPickerView

与前面的时间选择类似,只不过这个你可以自己设置内容。

UITableView

BOOM!

强大,异常强大。不多说,我自己也把大部分的学习时间用在了它的学习上,至今为止我觉得我还没能真正做到熟练地使用它,等以后成熟了,再写吧。

UICollectionView

又是一个庞大的家伙,在很多壁纸类APP中我们可以看到它的影子。
关于它的实现,我总结为以下几步:

· .h文件声明代理和数据源
· .m文件具体实现
§ 声明UICollectionView
§ 实例化,包括设置大小,位置,颜色等等
§ 加载代理和数据源到实例化的view
§ 注册cell(这里需要)
§ 将实例化的UICollectionView加入到View中
§ 实现数据源方法(包括必须实现的和选择实现的)
§ 实现代理方法(包括必须实现的和选择实现的)

关于数据源方法和代理方法,在这里需要特别说明一下,我们还是会出现不知道这个数据源或者代理中到底有什么的困惑,我们要command进去这些代理或者数据源去发现和寻找,文档还是我们学习的最终归宿。


UIViewController

接下来我们来聊聊ViewController。视图控制器在我们开发中最重要的 MVC模式中扮演着重要的角色,作为显示和数据的调度者,它的存在决定了我们的程序到底以怎样的形式呈现在用户面前。

这个最基础的Controller就不多说了,在目前的XCode中,一般来说新建的第一个SingleView就是用的这个。

UINavigationController

很重要的一个东西。导航视图控制器。说简单点它就是一个来存放视图的栈,原则上先进后出,一层一层的来管理在它里面的视图。在学习它的过程中还要掌握UINavigationBar、UINavigationitem等控件,还要熟悉几个pop、push方法。

既然是导航视图控制器,导航自然不是导的一个视图,而是管理多个视图,实现的时候有很多需要注意的地方,我们一步一步的来看。

首先新建一个工程,我们要纯手写代码来搞定之。

第一步,建立我们需要管理的多个视图。

“command+N”新建Cocoa TouchClass,命名为myViewController,Subclass of选择为UIViewController,重复四次,我们获得了四个试图控制器,也就是四个视图,接下来我们将用导航视图控制器来管理它们。

第二步,初始界面设置

在这里,我们需要来到AppDelegate.m文件,来配置初始界面,自定义-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法。


UITabbarController

区别于UINavigationController的顶部导航,UITabbarController是底部导航,功能上差不多,可以直接切换多个视图,典型的应用非常多,微信,QQ都是,实现起来也是类似于上面的UINavigationController。
简单地总结到这里,只是很简单的实现,日后再慢慢地学习更深层次的内容。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马