创建视图控制器
1.创建视图控制器 继承于 viewController
2.然后将创建出来的视图控制器自带的视图view加载到window上(在AppDelegate.m中进行添加) 创建出的视图控制器是RootViewController;
在AppDelegate.m中 方法如下:
创建rootVC RootViewController *rootVC = [[RootViewController alloc] init]; 将视图控制器自带的view设置为window的 根 视图 【self.window setRootViewController:rootVC】
创建一个view 添加到视图控制器RootviewController上的自带的View上
1.创建出来LoginView要添加自己需要的属性,并初始化
@interface LoginView () 添加属性 @property (nonatomic,retain)UITextField * textField; @end @implementation LoginView 初始化 -(instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { [self addSubview:self.textField]; } return self; }
2.然后要获得属性的get方法
-(uiTextField *)textField{ 懒加载 注意懒加载是在需要创建的时候才会调用该方法 别忘了 “ !”表示的是先判断view中个是否已经加载,没有加载则执行,加载过则就不加载, 好处就是为了 避免重复加载 if(!_textField){ _textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 100 ,200 ,50)]; [_textField setBackgroundColor:[UIColor redColor]]; } return _textField; }
屏幕旋转
1.重写父类的layouSubviews,当屏幕旋转的时候会执行此方法,一般在此方法中当前view的子视图进行重新布局
-(void)layouSubviews{ 【super layouSubviews】; 获取当前屏幕方向状态 NSInteger orientation = [ UIApplication sharedApplication] .statusBarOrientation; 判断方向 switch (orientation) { // 当屏幕的方向为水平方向的时候,我们要将输入框水平居中 case UIInterfaceOrientationLandscapeLeft: case UIInterfaceOrientationLandscapeRight: // 当是多行注释的时候,需要用花括号将他们括起来 { CGRect frame = self.textField.frame; // 当屏幕水平的时候,textField居中 frame.origin.x = (CGRectGetWidth(self.frame) - CGRectGetWidth(self.textField.frame))/2; self.textField.frame = frame; } break; // 当屏幕垂直的时候,textFireld回原样 case UIInterfaceOrientationPortrait: { self.textField.frame = CGRectMake(20, 100, 200, 50); } break: default: break; } } }
2.将创建出来的LoginView添加到视图控制器上进行实现