控制器

继承自UIViewController—UI界面的大管家:管理UI元素的各种事件,点击事件

  • 一个控制器负责管理一个大界面
  • 控制器负责界面大创建、事件处理......

UIView

    • 控件:屏幕上的所有Ui元素都叫做控件(视图,组件),比如按钮(UIButton),文本(UILable)
    • 控件都共同属性:尺寸,位置,背景......
    • 苹果将控件的共同属性都抽取到父类UIView中
    • 所有的控件最终继承父类UIView

UIButton

  • 默认是system,灰色,改成Custom就可以自定义高亮图片
 控制器大view加载完毕时调用
- (void)viewDidLoad
{
    [super viewDidLoad];
UIView是最纯洁最干净的控件,仅仅是做容器就用UIView

UIView常见属性:

- @property(nonatomic,strong) IBOutlet NSArray** *subviews;
// 获得自己的所有子控件对象
- @property(nonatomic,strong) IBOutlet UIView *superview;
 // 获得自己的父控件对象
- @property(nonatomic,strong) IBOutlet NSInteger tag;
控件的ID(标识),父控件可以通过tag来找到对应的子控件
[self.view viewWithTag:99] removeFromSuperview];
如果view为99,则返回自己,把自己删除
@property(nonatomic,strong) IBOutlet CGRect frame;
控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
@property(nonatomic,strong) IBOutlet CGAffineTransform transform;
@property(nonatomic,strong) IBOutlet CGRect bounds;
以自己的左上角为坐标原点(所以x,y都是0)
@property(nonatomic,strong) IBOutlet CGPointd center;
以控件中点位置在以父控件的左上角为原点的位置
常见方法
>>>常用方法
- addSubview:,**增加控件**
removeFromSuperview;**从父类中删除某控件**
insertSubview:() atIndex:()  **根据索引插入某控件**
                 above:**在谁上面**
                 blow:**在谁下面**


**将子控件view插入到subviews数组到index到位置**
- (void)insertSubview:(UIView *)view
atIndex:(NSIneager)index;

**将子控件view放到数组的最后面,显示在最上面**
- (void)bringSubviewToFront:(UIView *)view;

**将子控件view放到数组的最前面,显示在最下面**
- (void)sendSubviewToBack:(UIView *)view;

**打印view的xy尺寸的信息**
NSlog(@"%@",NSStringFromCGRect(self.view.frame));
  • UIButton :按钮,既能显示图片,也能显示文字,还能随时调整内部图片和文字的位置

类扩展

  • 分类:可以为某个方法增加一些额外的方法
    @interFace ViewController(Highclass)
    - (void)run;
    @end
    @implementiong ViewController(Highclass)
    - (void)run
    {
    }
    @end
  • 类扩展:也可以为某个类增加一些额外的属性和方法
    • 可以放在.h或.m文件中
    • 作用:存放类的私有属性
@interFace ViewController()
    @property (nonatomic,strong) IBOutlet UILabel *label;
    @end

storyboard的认识

  • 用来描述软件界面
  • 默认情况下,程序启动就会加载main.storyboard
  • 加载storyboard 时,会首先创建和实现箭头所指的控制器面板

IBAction、IBOutlet

  • IBAction:
    • 本质是void
    • 能让方法具备连线的功能
  • IBOutlet:
    • 能让属性具备连线的功能

storyboard练习容易出现的问题

  • 被链接的代码被删掉,但连线的代码没去掉
    • 可能出现方法找不到的错误
    • unrecognized selector sent to
  • 被链接的属性被删掉,但连线的代码没去掉
    • 可能出现方法找不到的错误
    • setValue:forUndefinedKey:this class is not key value coding-compliant for the key

results matching ""

    No results matching ""