美文网首页
ios学习笔记-storyboard方式OR手写代码方式

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

作者: 5f375ff95999 | 来源:发表于2015-04-13 14:35 被阅读0次

    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.

    填写类名

    然后打开 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手写代码方式

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