您的位置:首页 > 产品设计 > UI/UE

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

2015-08-03 08:15 531 查看
***//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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: