UIView控件
2016-05-11 23:32
471 查看
UIView
本节小结知识点:
什么是控件?控件的共同属性有哪些?
父控件、子控件
UIView的常见属性
UIView的常见对象方法
补充:
1. 什么是控件?
屏幕上的所有UI元素都叫做控件,也有人叫做视图、组件按钮(UIButton)、文本(UILabel)都是控件
2. 控件的共同属性有哪些?
- 尺寸 - 位置 - 背景色 - ......
苹果将控件的共同属性都抽取到父类UIView中
所有的控件最终都继承自UIView
UIButton、UILabel都是继承自UIView(可以查看头文件)
3. 父控件、子控件
每个控件都是个容器,能容纳其他控件内部小控件是大控件的子控件
大控件是内部小控件的父控件
每一个控制器(UIViewController)内部都有个默认的UIView属性
@property(nonatomic,retain) UIView *view;
控制器中管理的其他所有控件都是这个view的子控件(直接或者间接)
注意:间接是指子控件的子控件。
4. UIView的常见属性
获得自己的父控件对象@property(nonatomic,readonly) UIView *superview;
获得自己的所有子控件对象
@property(nonatomic,readonly,copy) NSArray *subviews;
控件的ID(标识),父控件可以通过tag来找到对应的子控件(这里一般要结合方法使用)
@property(nonatomic) NSInteger tag;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
@property(nonatomic) CGAffineTransform transform;
5. UIView的常见对象方法
添加一个子控件view- (void)addSubview:(UIView *)view;
从父控件中移除
- (void)removeFromSuperview;
根据一个tag标识找出对应的控件(一般都是子控件或间接子控件)
- (UIView *)viewWithTag:(NSInteger)tag;
内部查找原理先匹配自己、在匹配子控件(如果子控件又有子控件,则会进入子控件遍历),找到就返回并不在查找
如果仅仅是为了查找一个控件,不建议使用tag这个方法,这种遍历的形式性能较差,建议定义一个属性变量定义直接查找;
// 遍历过程,如下伪代码 //- (UIView *)viewWithTag:(NSInteger)tag //{ // if (self.tag == tag) return self; // for (UIView *subview in self.subviews) { // if (subview.tag == tag) return subview; // } // return nil; //}
6. 补充:
// 当控制器的view加载完毕后会自动调用这个方法1次 - (void)viewDidLoad{ }
// 当点击控制器的view就会自动调用这个方法 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 移除红色的view :removeFromSuperview 把左边的控件从父控件中移除 // [self.redView removeFromSuperview]; UIView * redView = [self.view viewWithTag:11]; [redView removeFromSuperview]; }
相关文章推荐
- GUI - Web前端开发框架
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- flex 控件的重要属性
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- 在Android开发中使用自定义组合控件的例子
- Android重写View实现全新的控件
- MFC中动态创建控件以及事件响应实现方法
- Cocos2d-x UI开发之文本类使用实例
- WinForm自定义函数FindControl实现按名称查找控件
- Android控件之ProgressBar用法实例分析
- WinForm拖拽控件生成副本的解决方法
- ASP.NET动态添加用户控件的方法
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述