1.自定义视图
1 #import "MyView.h" 2 3 @implementation MyView 4 5 6 //重写父类的初始化方法 7 8 -(instancetype)initWithFrame:(CGRect)frame 9 { 10 if(self = [super initWithFrame:frame]){ 11 //切记引用,如果不写的话则没办法调用 12 [self setView_up]; 13 } 14 return self; 15 } 16 //私有方法布局 17 -(void)setView_up{ 18 19 //设置位置 20 self.leftLable =[[UILabel alloc]initWithFrame:CGRectMake(20, 20, 80, 40)]; 21 //设置颜色 22 //self.leftLable.backgroundColor = [UIColor magentaColor]; 23 //设置字体 24 self.leftLable.text = @"用户名"; 25 self.leftLable.font = [UIFont systemFontOfSize:16]; 26 //对齐方式-----居中 27 self.leftLable.textAlignment = NSTextAlignmentCenter; 28 //添加 29 [self addSubview:self.leftLable]; 30 31 self.rightTextField = [[UITextField alloc] initWithFrame:CGRectMake(self.leftLable.frame.origin.x + self.leftLable.frame.size.width + 20,self.leftLable.frame.origin.y,self.frame.size.width - self.leftLable.frame.size.width - 40,self.leftLable.frame.size.height)]; 32 self.rightTextField.placeholder = @"请输入用户信息"; 33 //self.rightTextField.backgroundColor = [UIColor grayColor]; 34 self.rightTextField.borderStyle = 3; 35 self.rightTextField.delegate = self; 36 [self addSubview:self.rightTextField]; 37 38 } 39 -(BOOL)textFieldShouldReturn:(UITextField *)textField 40 { 41 [textField resignFirstResponder]; 42 return YES; 43 } 44 45 @end
2.ViewController的声明周期
1 #import "ViewController.h" 2 #import "MyView.h" 3 @interface ViewController () 4 //@property (strong,nonatomic) MyView *myView; 5 @end 6 7 @implementation ViewController 8 //系统封装了了初始化方法,每次运行都会先调用初始化方法 9 -(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 10 { 11 if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 12 NSLog(@"这个方法被调用了"); 13 NSLog(@"%s",__FUNCTION__);//打印当前被调用的方法的名称 14 } 15 return self; 16 17 } 18 //加载视图,用以代码布局的时候被调用,当视图第一次载入的时候调用的方法,企业级的面试题之一,ViewController的生命周期,加载视图到内存再到显示再到视图,加载->内存->显示->视图->消失->内存->dealloc 19 -(void)loadView 20 { 21 [super loadView]; 22 //__LINE__,方法被调用时所在的代码行数 23 NSLog(@"%s %d",__FUNCTION__,__LINE__); 24 } 25 //加载完毕 26 -(void)viewDidLoad 27 { 28 NSLog(@"%s",__FUNCTION__); 29 //self.view.backgroundColor = [UIColor redColor]; 30 //背景图,ViewController自带一个view 31 UIView *backView = [[UIView alloc] initWithFrame:self.view.frame]; 32 backView.backgroundColor = [UIColor greenColor]; 33 [self.view addSubview:backView]; 34 //创建MyView对象 35 MyView *userName = [[MyView alloc] initWithFrame:CGRectMake(10, 10, 300, 70)]; 36 userName.leftLable.text = @"用户名"; 37 //userName.backgroundColor = [UIColor magentaColor]; 38 NSLog(@"%@",NSStringFromCGRect(userName.rightTextField.frame)); 39 [backView addSubview:userName]; 40 41 userName.rightTextField.placeholder = @"请输入用户名"; 42 43 MyView *userPassword = [[MyView alloc] initWithFrame:CGRectMake(userName.frame.origin.x, userName.frame.origin.y + 100, userName.frame.size.width, userName.frame.size.height)]; 44 userPassword.leftLable.text = @"密码"; 45 userPassword.rightTextField.placeholder = @"请输入密码"; 46 userPassword.rightTextField.keyboardType = UIKeyboardTypeASCIICapable; 47 userPassword.rightTextField.secureTextEntry = YES; 48 //userPassword.backgroundColor = [UIColor magentaColor]; 49 [backView addSubview:userPassword]; 50 51 MyView *userPhone = [[MyView alloc] initWithFrame:CGRectMake(userPassword.frame.origin.x, userPassword.frame.origin.y + 100, userName.frame.size.width, userName.frame.size.height)]; 52 userPhone.leftLable.text = @"手机号"; 53 userPhone.rightTextField.placeholder = @"请输入手机号"; 54 userPhone.rightTextField.keyboardType = UIKeyboardTypeASCIICapable; 55 [backView addSubview:userPhone]; 56 57 MyView *userEmail = [[MyView alloc] initWithFrame:CGRectMake(userPhone.frame.origin.x, userPhone.frame.origin.y + 100, userName.frame.size.width, userName.frame.size.height)]; 58 userEmail.leftLable.text = @"邮箱"; 59 userEmail.rightTextField.placeholder = @"请输入邮箱号"; 60 userEmail.rightTextField.keyboardType = UIKeyboardTypeASCIICapable; 61 [backView addSubview:userEmail]; 62 } 63 //视图将要显示 64 -(void)viewWillAppear:(BOOL)animated 65 { 66 NSLog(@"%s, %d",__FUNCTION__,__LINE__); 67 } 68 //视图已经出现 69 -(void)viewDidAppear:(BOOL)animated 70 { 71 NSLog(@"%s",__FUNCTION__); 72 } 73 //视图将要消失 74 -(void)viewWillDisappear:(BOOL)animated 75 { 76 NSLog(@"%s",__FUNCTION__); 77 } 78 //视图已经消失 79 -(void)viewDidDisappear:(BOOL)animated 80 { 81 NSLog(@"%s",__FUNCTION__); 82 } 83 84 85 //内存警告里什么都不要写 86 - (void)didReceiveMemoryWarning { 87 [super didReceiveMemoryWarning]; 88 // Dispose of any resources that can be recreated. 89 } 90 91 @end