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

UI_封装

2016-01-23 14:20 387 查看
#import "AppDelegate.h"
#import "RootViewController.h"
@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  //--------------------------------------------------------------------------

    //初始化根视图控制器
    RootViewController *rootViewController = [[RootViewController alloc]init];
    //设置为window的根视图控制器
    self.window.rootViewController = rootViewController;
  //--------------------------------------------------------------------------  

    
    /*
    
模拟系统中window的 rootViewController
属性的setter方法
     -(void)setRootViewController:(RootViewController *)viewController{

     
     if(_rootViewController != viewController){
     [_rootViewController release];
     _rootViewController = [viewController retain];

     
     //self代表的就是window
     [self addSubview: viewController.view];
     }
  }

     
    */

    

    

    

    
#import "RootViewController.h"
#import "LTView.h"
#import "registerViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

//点击注册按钮的方法//跳转到注册的视图控制器 
这种跳转方式成为模态

-(void)createLoginViewByLTView{

    //首先创建用户名和密码输入的控件

    //得到整个屏幕的宽度
    float screenWidth = CGRectGetWidth(self.view.frame);
    //得到ltView的宽度  ltView整体居中
    float ltVWidth = screenWidth-40*2;
    //label显示内容的数组
    NSArray *labelTextArray = [NSArray arrayWithObjects:@"用户名",@"密码", nil];

    //输入框占位字符数组
    NSArray *placeHolderArray = [NSArray arrayWithObjects:@"请输入用户名",@"输入密码",
nil];
    for (int i = 0 ; i<2; i++) {
        LTView *ltView = [[LTView alloc]initWithFrame:CGRectMake(40, 100+i*(40+20), ltVWidth, 40)];
        ltView.leftLabel.text = labelTextArray[i];
        ltView.rightTextField.placeholder = placeHolderArray[i];
        [self.view addSubview:ltView];
    }

    
}

-(void)createButton{

    
    UIButton *registerButton = [UIButton buttonWithType:UIButtonTypeSystem];
    [registerButton setTitle:@"注册" forState:UIControlStateNormal];
    registerButton.frame =
e3c0
CGRectMake(80, 300, 100, 50);
    [registerButton addTarget:self action:@selector(registerAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:registerButton];
}

-(void)registerAction:(UIButton *)sender{

    

    //初始化注册的视图控制器
    registerViewController *registerVC = [[registerViewController alloc]init];

    
    //模态跳转

    //viewController:将要出现的视图控制器(将要跳转过去的视图控制器)
    //animated  :跳转的过程是否需要动画,需要:YES   
不需要:NO

    //completion: block参数,目前可以理解为一个代码片段。这里这个参数的作用是,跳转完成之后,所要执行的操作,如果跳转完成不执行任何操作,可以直接将此参数赋值为  nil
    [self presentViewController:registerVC animated:YES completion:^{
        NSLog(@"我跳转完成了");
    }];
}

- (void)viewDidLoad {
    [super viewDidLoad];

    //初始化一个label,添加到视图控制器自带的view上
//    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
//    label.text = @"我在视图控制器中";
//    [self.view addSubview:label];

    
    [self createLoginViewByLTView];
    [self createButton];

    
    NSLog(@"%s ---
视图加载完毕!",__FUNCTION__);
}

//视图即将出现
-(void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];
    NSLog(@"%s ---
视图将要出现了!",__FUNCTION__);
}

//视图已经出现
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSLog(@"%s ---
视图已经出现!",__FUNCTION__);
}

//视图即将消失
-(void)viewWillDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"%s ---
视图将要消失",__FUNCTION__);

}

//视图已经消失
-(void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"%s ---
视图已经消失",__FUNCTION__);
}

//当前视图控制器被释放的时候,所执行的方法
-(void)dealloc{
    //ARC下不需要写[super dealloc];      MRC下要写[super dealloc];

    
}

#import "registerViewController.h"

@interface registerViewController ()

@end

@implementation registerViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view setBackgroundColor:[UIColor cyanColor]];

   

    //加一个"返回"按钮,作用为返回根视图控制器
    UIButton *backButtun = [UIButton buttonWithType:UIButtonTypeSystem];
    [backButtun setTitle:@"返回" forState:UIControlStateNormal];
    [backButtun setFrame:CGRectMake(120, 150, 100, 100)];
    [backButtun addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:backButtun];
}

//返回按钮的点击方法
-(void)backAction:(UIButton *)sender{

//返回上一个视图控制器
    //animated:返回的时候是否需要动画

    //completion:返回动作结束之后,如果还要进行其他操作,就实现此函数,不需要直接赋值nil

    
    [self dismissViewControllerAnimated:YES completion:^{
        NSLog(@"我是注册界面,我要消失了");
    }];
}

    
#import "LTView.h"

@implementation LTView

//因为labrl和TextField要根据LTView的大小来布局,所以我们需要拿到LTView的frame,所以需要重写LTView的初始化方法。
-(instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
     //在初始化方法中,为LTView添加label
和 textField
        //初始化label。并且添加到LTView。 
label 和 textField的宽度比例大约为1:2
           //得到整个屏幕宽度
        float sumWidth = CGRectGetWidth(frame);
           //得到label的宽度
        float labelWidth = (sumWidth-20)/3;
        _leftLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, labelWidth, CGRectGetHeight(frame))];
        [self addSubview:_leftLabel];
       //初始化textField
并添加到LTView
        _rightTextField =[[UITextField alloc]initWithFrame:CGRectMake(labelWidth + 20, 0,labelWidth *2, CGRectGetHeight(frame))];
        [self addSubview:_rightTextField];
    }
        return self;
}

    

    

    

    

    

    

    

    
    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  界面 应用