(GeekBand)iOS编程第一周

storyboard文件的认识

  • 用来描述软件界面
  • 默认情况下,程序一启动就会加载Main.storyboard
  • 加载storyboard时,会首先创建和显示箭头所指的控制器界面

IBAction和IBOutlet

  • IBAction:
    • 本质就是void
    • 能让方法具备连线的功能
  • IBOutlet
    • 能让属性具备连线的功能

storyboard连线容易出现的问题

  • 连接的方法代码被删掉,但是连线没有去掉
    • 可能会出现方法找不到错误
    • unrecognized selector sent to instance
  • 连接的属性代码被删掉,但是连线没有去掉
    • setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key

UIViewController(控制器)的认识

  • 一个控制器负责管理一个大界面
  • 控制器负责界面的创建、事件处理等

类扩展

  • 格式
@interface 类名()
/** 属性、方法的声明 */
@end
  • 作用
    • 为某个类增加额外的属性和方法声明
    • 可以写在.h和.m文件中

项目属性

  • Product Name
    • 软件名称、产品名称、项目名称
  • Organization Name
    • 公司名称、组织名称
  • Organization Identifier
    • 公司的唯一标识
    • 一般是公司域名的反写,比如com.520it
  • Bundle Identifier
    • 软件的唯一标识
    • 一般是Organization Identifier + Product Name

外部文件添加到项目时的正确勾选

(GeekBand)iOS编程第一周_第1张图片
添加文件到项目时的正确选择.png

常见问题

  • 项目里面的某个.m文件无法使用
    • 检查:Build Phases -> Compile Sources
  • 项目里面的某个资源文件(比如plist、音频等)无法使用
    • 检查:Build Phases -> Copy Bundle Resources

模型

  • 什么是模型?
    • 专门用来存放数据的对象
    • 一般都是一些直接继承自NSObject的纯对象
    • 内部会提供一些属性来存放数据

一个控件看不见有哪些可能?

  • 宽度或者高度其实为0
  • 位置不对(比如是个负数或者超大的数,已经超出屏幕)
  • hidden == YES
  • alpha <= 0.01
  • 没有设置背景色、没有设置内容
  • 可能是文字颜色和背景色一样

代码添加按钮

- (void)addButtonWithImage:(NSString *)image highImage:(NSString *)highImage disableImage:(NSString *)disableImage frame:(CGRect)frame tag:(NSInteger)tag action:(SEL)action
{
    // 创建按钮
    UIButton *btn = [[UIButton alloc] init];
    // 设置背景图片
    [btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
    [btn setBackgroundImage:[UIImage imageNamed:disableImage] forState:UIControlStateDisabled];
    // 设置位置和尺寸
    btn.frame = frame;
    // 监听按钮点击
    [btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
    // 绑定tag标记
    btn.tag = tag;
    // 添加按钮
    [self.view addSubview:btn];
}

- (void)viewDidLoad
{
    [super viewDidLoad]; 
    [self addButtonWithImage:@"add" highImage:@"add_highlighted" disableImage:@"add_disabled" frame:CGRectMake(30, 30, 50, 50) tag:10 action:@selector(add)];
}

xib文件的加载

 加载xib文件
   方式1
  Test.xib --编译--> Test.nib 
NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"Test" owner:nil options:nil];
 [self.view addSubview:objs[1]];
    
  方式2
 一个UINib对象就代表一个xib文件
   UINib *nib = [UINib nibWithNibName:@"Test" bundle:[NSBundle mainBundle]];
一般情况下,bundle参数传nil,默认就是mainBundle
  UINib *nib = [UINib nibWithNibName:@"Test" bundle:nil];
   NSArray *objs = [nib instantiateWithOwner:nil options:nil];
  [self.view addSubview:[objs lastObject]];

第一周作业(遇到的坑)

  • 导入txt文件后读出来的始终是乱码 各种蛋疼 最后发现是文本编码没弄对
  • Xcode时常报错找不到某某key,其实就是删除了该控件从storyboard的代码,但是忘记删除留在storyboard上的控件连线

满地打滚卖萌求赞,如果本文帮助到你,轻点下方的红心,给作者君增加更新的动力。

你可能感兴趣的:((GeekBand)iOS编程第一周)