ios学习笔记-storyboard方式OR手写代码方式

storyboard就是之前的nib文件。好处是可以通过拖拽UI的方式来布局。但是我的学习过程走的是另外一种方式,就是手写布局代码。好处是可以加深理解。当然,我觉得最好的方式是把storyboard当作原型来用。这样自己开发之前可以先用storyboard画出界面,以后不会忘记掉。

下面纪录一个手写代码布局的例子,这个例子重写之前写的那个hello world例子。

首先,如之前一样,创建一个Single View Application。然后右键项目下的test2文件夹,选择 New File,然后选择 Cocoa Touch Class,Next,填写一些名称:

注意 subclass要选择 UIViewController。因为是手写布局代码,所以去掉勾选"Also create xib file"。NEXT -> Create.

ios学习笔记-storyboard方式OR手写代码方式_第1张图片
填写类名

然后打开 AppDelegate.m 文件。重写application方法:

#import "RootViewController.h"
//先导入刚才新建的类
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    //将窗口的大小设为和屏幕大小一样
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    //将窗口的背景颜色更改为灰色
    self.window.backgroundColor = [UIColor grayColor];
    
    //初始化RootViewController
    RootViewController  *instance_rootView = [[RootViewController alloc]init];

    //设置RootViewController的大小和window的相同
    [instance_rootView.view setFrame:self.window.frame];

    //将RootViewController设置为根视图控制器
    self.window.rootViewController = instance_rootView;
    
    //设置为主窗口并可见
    [self.window makeKeyAndVisible];

    return YES;
}

点击运行,你会发现模拟器里会茫茫一片,什么也没有。灰色背景是我们刚才添加的主窗口RootViewController。现在我们在主窗口上添加一个按钮吧,打开RootViewController.m,interface里补充这么一行代码:

@interface RootViewController ()

//初始化一个UIButton
@property (nonatomic, strong) UIButton *view_btn;

@end

然后implementation中新增一个方法:

-(void)initRootView{
    
    self.view_btn = [[UIButton alloc]initWithFrame:self.view.bounds];
    
    [self.view_btn setTitle:@"hello" forState:UIControlStateNormal];
    
     //将UIButton添加到RootView上显示
    [self.view addSubview:self.view_btn];

}

将initRootView方法放在viewDidLoad方法的结尾调用一下:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    [self initRootView];
}

运行一下,你会发现灰色的界面上显示了一个按钮。这个按钮当前还不能点击哟。

我们添加一些方法:

首先修改initRootView方法,在将UIButton添加到RootView上增加一行:

-(void)initRootView{
    
    self.view_btn = [[UIButton alloc]initWithFrame:self.view.bounds];
    
    [self.view_btn setTitle:@"hello" forState:UIControlStateNormal];
    
    [self.view_btn addTarget:self action:@selector(someButtonClicked)forControlEvents:UIControlEventTouchUpInside];

    
     //将UIButton添加到RootView上显示
    [self.view addSubview:self.view_btn];

}

然后实现一下点击事件:

-(void) someButtonClicked{
    
    UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Hello, World"
                              message:@"This is my first app!"
                              delegate:nil
                              cancelButtonTitle:@"ok"
                              otherButtonTitles:nil];
    
    [alertView show];
}

ok,再运行下模拟器就可以看到效果了。

你可能感兴趣的:(ios学习笔记-storyboard方式OR手写代码方式)