UIViewController视图控制器(移动self.view,随机颜色)

***//UIViewController不能直接使用,要定义一个子类,继承于它,用子类创建,UIViewController提供模板


1.初始化方法

//VC的初始化方法,这个方法一般自己就调用了,不需要我们再额外的去调用,会初始化一些容器,比如数组字典等

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        self.arr=[NSMutableArray array];

         }

//__FUNCTION__:打印所有的方法名

    NSLog(@"%s",__FUNCTION__);

    return self;

}

2.注释


#pragma mark  用来添加注释


3.加载self.view

-(void)loadView

{

    [super loadView];

     NSLog(@"%s",__FUNCTION__);

   //self.view的加载

}


4.移动self.view

//视图的创建和铺设都在viewedload方法里进行

铺3个textField(偏下)

1个button

在键盘弹出的时候会挡住textField,在Controller.m里签一个协议

<UITextFieldDelegate>

设置代理人

textField1.delegate=self;

这样就可以使用协议里的方法

//点击输入框的时候就会触发的方法,向上移动,等到编译结束再回到原位

//******整个是在移动self.view,父视图的移动会让所有子视图一同移动,而且相对父视图的坐标位置不会发生变化,所以,可以沿用上一个方法的判断

//*****往上走,只要输入框被激活,就会触发这个方法

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField

{

    if (textField.frame.origin.y > HEIGHT/2) {

        //先做一个差值

        CGFloat height=textField.frame.origin.y-HEIGHT/2;

    self.view.center=CGPointMake(self.view.center.x, self.view.center.y- height);

    }

    return YES;

}


//*****等到编译结束的时候,再让他回到原位

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField

{

    if (textField.frame.origin.y > HEIGHT/2) {

        //先做一个he

        CGFloat height=textField.frame.origin.y-HEIGHT/2;

      self.view.center=CGPointMake(self.view.center.x, self.view.center.y+height);

    }

5.//随机颜色

    self.view.backgroundColor=[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

6.在AppDelegate里引头文件

//1.创建一个rootViewController对象

    RootViewController *rootVC=[[RootViewController alloc] init];

    //2.window设置根视图控制器,把创建的对象赋给这个属性

    self.window.rootViewController=rootVC;

    [rootVC release];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值