一、类扩展(class extension,匿名分类)

1.格式

@interface 类名 ()

{

// 成员变量...

}

// 方法声明...

@end

2.作用

1> 写在.m文件中

2> 一般用来扩充私有成员变量、@property属性、方法等

二、随机数生成

1.arc4random() 会生成任意正整数和0

2.arc4random_uniform(100) 会生成0~99的整数(包括0和99)

三、UIView常见方法

1.addSubview:(UIView *)child

添加子控件用(最新添加的子控件,会显示在最上面)

2.NSArray *subviews

通过addSubview:方法添加的子控件都会存在于这个数组中

3.removeFromSuperview

将控件本身从父控件中移除(控件本身也会从父控件的subviews数组中移除)

4.(UIView *)viewWithTag:(int)mytag

* 返回tag值为mytag的子控件

* 如果有多个子控件的tag一样,只会返回第一个匹配的子控件(在搜索tag匹配的控件时,也包含控件本身)

5.UIView *superview

父控件

四、xib的基本使用

1.可以认为xib和nib是同义词

2.加载xib文件

[[NSBundle mainBundle] loadNibNamed:@"RowView" owner:nil options:nil];

// 加载RowView.xib文件,创建Objects下面的所有控件,并且按顺序装到数组中返回

3.storyboard和xib的异同

1> 区别

* storyboard : 描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面

* xib : 描述软件界面,小范围,轻量级,比较适合描述某个小界面(局部界面)

2> 相同点:本质都是转成代码

4.File's Owner的使用步骤

1> 在xib文件中设置File's Owner的class属性(目的是在xib中能找到Owner的方法)

2> 建立File's Owner 跟 控件之间的联系

3> 利用代码加载xib,传递Owner参数(类型一定要匹配)

五、类的设计

* 将自己的内部设计封装起来,不让外界太关心内部的实现细节

01-联系人管理

1> 实现方式:纯代码

2> 实现功能:添加\删除一行、能获得每行的姓名

01-联系人管理 - 2

1> 实现方式:纯代码

2> 实现功能:添加\删除一行、能获得每行的姓名、每行都有个删除按钮

01-联系人管理 - 3

1> 实现方式:代码 + xib

2> 实现功能:添加\删除一行、能获得每行的姓名、每行都有个删除按钮(通过代码监听每行的删除按钮)

01-联系人管理 - 4

1> 实现方式:代码 + xib

2> 实现功能:添加\删除一行、能获得每行的姓名、每行都有个删除按钮(通过拖线监听每行的删除按钮,MJViewController监听按钮点击)

iOS基础 - 类扩展的更多相关文章

  1. IOS中 类扩展 xib

    一.类扩展(class extension,匿名分类) .格式 @interface 类名 () { // 成员变量... } // 方法声明... @end .作用 > 写在.m文件中 > ...

  2. 【Demo 0007】Java基础-类扩展特性

    本章学习要点:        1.  掌握static 修饰的类,方法以及变量的功能及用法;        2.  掌握代码块(静态,非静态)的作用以及注意事项:        3.  了解基本数据类 ...

  3. iOS 类别 类扩展 简要说明

  4. 关于iOS 类扩展Extension的进一步理解

    很多人可能会问  iOS的分类和扩展的区别,网上很多的讲解,但是一般都是分类讲的多,而这也是我们平常比较常用的知识:但是,对于扩展,总觉得理解的朦朦胧胧,不够透彻. 这里就讲一下我自己的理解,但是这个 ...

  5. iOS中的分类(category)和类扩展(extension)

    今天在研究swift的时候看到了分类和扩展.这是两个十分重要有用的功能,但是之前用的不多,没有深入了解过,在今天就从头理一遍. 一.分类(Category): 概念: 分类(Category)是OC中 ...

  6. iOS - 类扩展与分类的区别

    类扩展 (Class Extension也有人称为匿名分类) 作用: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展 使用格式: @interfac ...

  7. iOS分类(category),类扩展(extension)—史上最全攻略

    背景: 在大型项目,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类currentClass添加一个方法newMethod,那该怎么办呢? 最简单粗暴的方式是把newMethod ...

  8. IOS中类的扩展(协议,分类)

    IOS中类的扩展(协议,分类) 扩展类,我们可以使用协议和分类这两种方法,下面我们来分别实现这两种方法: 参考网址:http://www.cnblogs.com/wendingding/p/37095 ...

  9. iOS面试必备-iOS基础知识

    近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内 ...

随机推荐

  1. [ZZ] python 语言技巧

    http://sahandsaba.com/thirty-python-language-features-and-tricks-you-may-not-know.html  感谢原作者 30 Pyt ...

  2. C++内存分配和拷贝构造函数写研究

    昨晚参加笔试,开错题,有印象中的概念,但目前尚不清楚是怎么回事,什么原理,导致错误的话题.现在总结. 一.C++写内存分配研究 问题考察例如以下,请先不要看答案,看看你是否能做对,呵呵: waterm ...

  3. 第10章 外观模式(Façade Pattern)

    原文   第10章 外观模式(Façade Pattern) 概述:   在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化.那么如何简化客户程序 ...

  4. do...while(0)神奇

    1. do...while(0)消除goto语句. 通常,假设在一个函数中開始要分配一些资源.然后在中途运行过程中假设遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样: version ...

  5. oracle_解锁表_解锁用户

    1.解锁用户 以dba身份登录   sqlplus / as sysdba alter user scott account unlock; 2.解锁表 alter   system   kill   ...

  6. linux_shell_获取日期相关

    shell里直接调用系统变量 获取当天日期`date +%Y%m%d` 获取昨天日期`date -d yesterday +%Y%m%d` 获取前天日期`date -d -2day +%Y%m%d` ...

  7. Webserver管理系列:3、Windows Update

    微软的操作系统可以使用用户过程中发现了一些漏洞,因此,他们经常发布一些系统补丁.因此,我们需要自己主动安装更新功能后,打开系统. 默认的更新功能未开启自己主动: 开启自己主动更新功能后.Windows ...

  8. FTP下载帮助类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...

  9. MVC创建XML,并实现增删改

    原文:MVC创建XML,并实现增删改 如果创建如下的XML: <?xml version="1.0" encoding="utf-8" standalon ...

  10. angularJS之使用过滤器转化输出 (angularJS系列最后一篇)

    在视图模板中使用过滤器 过滤器也是一种服务,负责对输入的内容进行处理转换,以便更好地向用户显示. 过滤器可以在模板中的{{}}标记中使用: {{ expression | filter:arg1:ar ...