美文网首页
UI界面的旋转 以及 模态(视图控制器之间的转换)

UI界面的旋转 以及 模态(视图控制器之间的转换)

作者: 枫叶知秋 | 来源:发表于2016-04-12 14:31 被阅读60次

    创建视图控制器


    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添加到视图控制器上进行实现

    相关文章

      网友评论

          本文标题:UI界面的旋转 以及 模态(视图控制器之间的转换)

          本文链接:https://www.haomeiwen.com/subject/fsdrhttx.html