IOS的UI继承
2015-12-11 本文已影响257人
shanshan950224
图1
图2
图3
-
所有控件都是UIView的子类,任意控件都可以addSubView
-
所有UIView控件都有的属性:
- backGroundColor----背景颜色
- Alpha----透明度
- tage----标签
- frame----框架
- hidden----隐藏
- 等
-
实现滑动一定要继承UIScrollView
-
UIControl的子类都有点击和拖动事件
-
可以自定义控件
- 可以增加属性或自定义UI样式
-
误区
-
UITextFiled不可以换行
-
UITextView没有placeholder
-
-
所有控件都以UI开头
-
所有控件都可以与用户交互
-
如果子类view比父类的view大 那么它的坐标为负的 bounds为本身
以上控件不懂可见图1与图2
-
这三个结构体均在一个头文件里:[CGGeometry.h]
三个结构体 CGPoint、CGSize、CGRect
结构体关键字:
struct
-
CGPoint 代表坐标
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
看到这个想必你已经懂了,不再解释。 -
CGSize 代表大小尺寸
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
不解释。 -
CGRect 代表位置和大小
这个结构体中还有一个结构体
CGPoint
struct CGRect {
CGPoint origin; //偏移是相对父视图的
CGSize size;
};
typedef struct CGRect CGRect;
同样 不解释。
-
见图3
-
frame和center都是相对于父视图的,bounds是相对于自身的
- frame 是CGRect frame的origin是相对于父视图的左上角原点(0,0)的位置,改变视图的frame会改变center
- center 是CGPoint 指的就是整个视图的中心点,改变视图的center也会改变frame
*bounds 是CGRect 是告诉子视图本视图的原点位置(通俗的说就是,子视图的frame的origin与父视图的bounds的origin的差,就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)
通过addSubview:这个方法添加子类,不管谁添加它,只要越晚添加,视图就在越上层移除父视图也会把它得子视图移除。