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];
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];
相关文章推荐
- UIImageView图片填充三种模式的区别
- HackerRank - "Snakes and Ladders: The Quickest Way Up"
- 为什么不推荐用UniversalImageLoader加载res/drawable
- UE4信息交互-关卡蓝图引用关卡中的对象
- wildfly使用入门
- IOS开发UI篇--IOS动画(Core Animation)总结
- 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
- UE4信息交互-命令行执行自定义事件ConsoleCommand
- 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
- [leedcode 187] Repeated DNA Sequences
- leetcode 63: Unique Paths II
- iOS开发——UI进阶篇(十三)UITabBarController简单使用,qq主流框架
- hdu 5312 Sequence
- php图像函数 imagecreatetruecolor()和imagecreate()的区别
- 关于Android Notification.Builder不显示通知的问题
- iOS学习笔记5-GCDAsyncUdpSocket中的dispatch_queue_set_specific
- iOS多线程编程之NSOperation和NSOperationQueue的使用
- Android多线程中UI线程和其他线程进行交互的几种方法小结
- 浅谈UIViewController生命周期
- Frequentist和Bayesian的差别