- 所有控件都是UIView的子类,所以有 [任意控件 addSubView: 任意控件控件];
子类拥有UIView的所有属性:例如,背景颜色,透明度,tag,Frame等 - 实现滑动需要继承UIScrollView
- UIControl的子类可以点击或拖动
- 可以自定义控件,可以增加属性或自定义样式
- UITextField不可以换行
- UITextView 没有PlaceHolder
- 控件都以UI开头,控件可以与用户交互
- 通过addSubview:这个方法添加子视图,不管谁添加它,只要越晚添加,视图就在越上层
三个结构体 CGPoint、CGSize、CGRect
- CGPoint 坐标
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
- CGSize 大小
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
- CGRect 位置和大小
struct CGRect {
CGPoint origin; //偏移是相对父视图的
CGSize size;
};
typedef struct CGRect CGRect;
这三个结构体均在一个头文件里:CGGeometry.h
-
视图的最基本属性
- frame和center都是相对于父视图的,bounds是相对于自身的
- frame 是CGRect frame的origin是相对于父视图的左上角原点(0,0)的位置,改变视图的frame会改变center
- center 是CGPoint 指的就是整个视图的中心点,改变视图的center也会改变frame
- bounds 是CGRect 是告诉子视图本视图的原点位置(通俗的说就是,子视图的 * frame的origin与父视图的bounds的origin的差,就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)