热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

UI一一XIB和代码创建程序的对比

UI--XIB和代码创建程序的对比很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路上的点点滴滴,做到温故而知

UI -- XIB和代码创建程序的对比

很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路上的点点滴滴,做到温故而知新。

且回顾、且整理记录、且分享。

一个简单的iOS小程序

简单实现一个小程序 --- “改变文字颜色”

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, weak) UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

// 1.创建Label
UILabel *label = [UILabel new];
label.text = @"我是测试文字";
label.textAlignment = NSTextAlignmentCenter;
label.frame = CGRectMake(0, 50, self.view.frame.size.width, 50);
self.label = label;
[self.view addSubview:label];

// 2.创建三个button
UIButton *redBtn = [self creatBtnWithTitle:@"红" selector:@selector(redColor:)];
redBtn.frame = CGRectMake(0, CGRectGetMaxY(label.frame), 375/3, 50);

UIButton *greenBtn = [self creatBtnWithTitle:@"绿" selector:@selector(greenColor:)];
greenBtn.frame = CGRectMake(375/3, CGRectGetMaxY(label.frame), 375/3, 50);

UIButton *blueBtn = [self creatBtnWithTitle:@"蓝" selector:@selector(blueColor:)];
blueBtn.frame = CGRectMake(375/3*2, CGRectGetMaxY(label.frame), 375/3, 50);

}

// 封装创建按钮的公共代码
- (UIButton *)creatBtnWithTitle:(NSString *)title selector:(SEL)selector
{
UIButton *btn = [UIButton new];
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
[btn setTitle:title forState:UIControlStateNormal];
[btn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
return btn;
}

// 红色按钮的点击事件
- (void)redColor:(id)sender {

self.label.textColor = [UIColor redColor];
}

// 绿色按钮的点击事件
- (void)greenColor:(id)sender {

self.label.textColor = [UIColor greenColor];
}

// 蓝色按钮的点击事件
- (void)blueColor:(id)sender {

self.label.textColor = [UIColor blueColor];
}

这两种方式虽然都很简单,但是有点不同,下面总结一下各自的特点

  • XIB
    • 方便快捷,特别适用于局部UI的快速搭建
    • XIB拖线直观,但是多人开发容易暗含多种陷阱(例如:拖线的方法找不到;或者代码里面注释了,但是xib还是正常显示的,一点击就崩溃;或者一个控件连线多个方法,出现异常等)
    • 适用范围:
      • 适用于一些静态页面,如果每次UI都动态改变的还是代码为主。
    • XIB经典错误(运行过程中找不到对应方法)
文章原处:http://www.jianshu.com/p/1db39b76ca3f?utm_campaign=hugo&utm_medium=reader_share&utm_cOntent=note&utm_source=qq

推荐阅读
author-avatar
大鱼小鱼比目鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有