什么是控件?
屏幕上的所有UI元素都叫做控件(也有叫做视图、组件)比如按钮(UIButton)、文本(UILabel)都是控件
控件的共同属性有哪些?
尺寸
位置
背景色
......
苹果将控件的共同属性都抽取到父类UIView中,所有的控件最终都继承自UIView
UIButton、UILabel都继承自UIView(可以查看头文件验证)
父控件、子控件
每个控件都是个容器,能容纳其他控件
内部小控件是大控件的子控件
大控件是内部小控件的父控件
每一个控制器(UIViewController)内部都有个默认的UIView属性@property(nonatomic,retain) UIView *view;
控制器中管理的其他所有控件都是这个view的子控件(直接或者间接)
UIView的常见属性
@property(nonatomic,readonly) UIView *superview;
获得自己的父控件对象
@property(nonatomic,readonly,copy) NSArray *subviews;
获得自己的所有子控件对象
@property(nonatomic) NSInteger tag;
控件的ID(标识),父控件可以通过tag来找到对应的子控件
@property(nonatomic) CGAffineTransform transform;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
- (void)addSubview:(UIView *)view;
添加一个子控件view
- (void)removeFromSuperview;
从父控件中移除
- (UIView *)viewWithTag:(NSInteger)tag;
根据一个tag标识找出对应的控件(一般都是子控件)
@property(nonatomic) CGRect frame;
控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
@property(nonatomic) CGRect bounds;
控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
@property(nonatomic) CGPoint center;
控件中点的位置(以父控件的左上角为坐标原点)
UIKit坐标系
在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸
可能用的上UI控件
为了便于开发者打造各式各样的优秀App,UIKit框架提供了非常多功能强大又易用的UI控件,以下列举一些在开发中可能用得上的UI控件:
红色表明最常用,蓝色代表一般,黑色代表几乎不用(这不是绝对的,仅供参考)
提示:千万别一口气去百度所有的控件,没有这个必要一口气学完所有的控件,原因如下:
有些控件可能一年用不到1次,用到时再学
iOS中控件的用法都是相似相通的,掌握最主要、最常用的控件,就可以快速上手其他控件
面试中不会被问及诸如“进度条会用不?开关会用不?”之类的问题
UILabel – 文本标签
UIButton – 按钮
按钮的作用是:监听用户的点击事件,在用户点击后做出响应
UITextField – 文本输入框
文本输入框可以弹出键盘,让用户输入文本内容
UITextView – 能滚动的文字显示控件
如果文字内容比较多,需要换行显示,并且需要编辑
UIProgressView – 进度条
水平进度条,比如显示文件的下载进度,程序的启动进度
UISlider – 滑块
在2个数值之间滑动选择,比如调节音量大小
UIActivityIndicator – 圈圈
一直在转圈圈,表示让用户等待
UIAlertView – 对话框(中间弹框)
从中间弹出一个框提示用户下一步该做什么
UIActionSheet – 底部弹框
从底部弹出一个框提示用户下一步该做什么
UIScrollView – 滚动的控件
如果内容比较多,超出了一个屏幕,就可以用它来显示
UIPageControl – 分页控件
能显示当前的页码
UITableView – 表格
如果每一行显示的内容格式差不多,就用这个表格控件
UICollectionView – 九宫格
如果显示的东西是一块一块、一格一格的,而且每个格子长的差不多,就可以用它
UIWebView – 网页显示控件
一般用来显示网页,使用它,就可以在手机上浏览网页
UISwitch – 开关
要么打开,要么关上
UISegmentControl – 选项卡
在固定的几个选项之间进行选择
UIPickerView – 选择器
在多行数据之间只选择一行
UIDatePicker – 日期选择器
选择日期
UIToolbar – 工具条
一般显示在底部或者键盘顶部,里面有几个小按钮
UINavigationBar – 导航条
显示在顶部的条