//当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder { i…
//当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder { i…
****************************layoutSubviews************************************ layoutSubviews是UIView中的属性方法,即只要继承于UIView,就可以使用这个方法,这个方法也很强大,以下是他的触发时机: 1.init初始化不会触发layoutSubviews  2.addSubview会触发layoutSubviews  3.设置view的Frame会触发layoutSubviews,当然前提是fra…
1.init 与initialize 对于iOS程序,创建几个类对象,就会调用几次init.下面分别重写 举例如下: 创建一个Person类,分别重写initialize和init方法 #import "Person.h" @implementation Person +(void)initialize {  NSLog(@"%s", __FUNCTION__);   } -(instancetype)init { NSLog(@"%s", __…
1 initWithFrame 通过代码创建控件的话用这个方法设置  2 initWithCoder(先执行) 与从xib加载有关系的 在此方法里面设置原有子控件的值是不行的,因为还没有连好线  3 aweakFormNib (后执行)方法的区别 与xib加载有关系 代表子控件从xib里面加载完成,并且,连线完成,直接可以使用 如果是从xib加载的来设置子控件的属性的话,要把代码放在aweakformNib里面…
这是一个自定义view: @implementation MyView - (instancetype)init { if (self = [super init]) { NSLog(@"调用了init"); } return self; } - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { NSLog(@"调用了initWithFrame"…
init()方法 如果想在一个go文件里,进行一些初始化的工作,可以把代码放到init()方法中. init()方法先被执行. func init() { // initialization of package } 注意:它是没有输入参数和返回参数的. identifier首字母大小写区分 当identifier(比如constant,variable,type,function,struct field,...)的命名首字母是大写的话,那表示这个identifier在包外是可以见的: 类似p…
调用顺序为 1 init函数(init;initWithFrame;initWithCoder;等)--初始化 2 awakeFromNib--在loadView之前的工作放在这里 3 viewDidLoad--注意,一个ViewController一个生命周期内这个函数只会调用一次 4 viewWillAppear -- view将要出现,每次View消失再出现都会调用 5 viewWillLayoutSubviews--简要对子试图进行布局 6 viewDidLayoutSubivews--…
1.先把OC的类分清楚各有什么方法 普通类的方法 init initialize: 控制器类的方法 init initialize: initWithCoder: UI控件类的方法 init initialize: initWithCoder: initWithFrame: 2.init方法 每个类被创建的时候就会调用init方法 Person *p1 = [[Person alloc]init];Person *p2 = [[Person alloc]init];Person *p3 = [[…
当我们创建或者自定义一个UI控件时,就很可能会调用awakeFromNib.initWithCoder .initWithFrame这些方法.三者的具体区别如下: initWithFrame: 通过代码创建UI控件的时候就会调用: initWithCoder:从文件中解析一个对象的时候就会调用这个方法,也就是说无论是通过代码还是xib,程序运行的时候都会调用这个方法: awakeFromNib:当一个对象从xib或者storyboard中加载完毕后,就会调用一次. 比如:当苹果官方提供的按钮不能…
(1)awakeFromNib和initWithCoder:差别awakeFromNib 从xib或者storyboard加载完毕就会调用initWithCoder: 只要对象是从文件解析来的,就会调用同时存在会先调用initWithCoder: (2)initWithCoder: & initWithFrame:initWithCoder:使用文件加载的对象调用(如从xib或stroyboard中创建)initWithFrame:使用代码加载的对象调用(使用纯代码创建)注意:所以为了同时兼顾从…
自定义插件 1.使用时的调用方法 导入头文件,创建对象,设置尺寸,传入数据: 2,内部方法的实现 XMGPageView.m XMGPageView.h XMGPageView.xib 注意点 自定义插件灵活点 外部调用时使用什么方式:alloc init,还是xib 插件的内部实现,既满足xib的方式,又满足纯代码的形式(alloc init/initwithframe); 将初始化的代码写在一个方法里:用到时调用即可: 不管控件是通过 代码创建,还是通过xib或者storyboard拖出来的…
网上搜索gen_fsm的例子,90%都是code_lock,依葫芦画瓢弄了下,记录一些学习心得 init(UnLockCode) -> process_flag(trap_exit,true), io:format("init: ~p~n", [UnLockCode]), {ok, locked, {[], UnLockCode}}. init返回值里面,locked为StateName,{[], UnLockCode}为StateData,在回调函数里面有用 发送event有两…
今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过一番学习之后,我觉得这样答题会更好.viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用,也就是如果不从nib调用它就不会被执行.loadView 此方法在控制器的view为nil的时候被调用. 此方法用于以编程的方式创建view的时候用到. - ( void ) loadV…
导言 我曾经开发过一个iphone应用程序,它显示了大量的输入,这些输入分为不同的类别,在`UITableView`...若要更改其中一个输入的值,用户按下表视图中的对应行,并在出现的单独屏幕中更改该值.表视图为每个类别有一个节,每个节包含每个输入的表格单元格(行). 问题是输入的数量变得非常非常大,所以它没有给用户一个非常好的概述.从桌面滚动到底部甚至很乏味. 我们决定用户应该能够通过简单地按下节的标题来折叠和展开表中的部分(类别).我们要求实现这一目标的代码应该是可重用的,并且要求对现有代码…
一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load   (NSObject) initialize   (NSObject) init   (NSObject) initWithCoder initWithNibName awakeFromNib   (NSObject) loadView viewDidLoad viewWillAppear updateViewCo…
一.使用纯代码方式 initWithFrame:中添加子控件 layoutSubViews中设置子控件的fame 对外设置数据接口,重写setter方法给子控件设置数据显示 在的viewController里面使用init/initWithFrame:方法创建自定义类,并且给自定义类的frame赋值 对自定义类对外暴露的数据接口进行赋值 二.使用xib方式 创建xib,在xib中拖入需要添加的控件并设置好尺寸,这个xib的Class要设置为我们定义的类 通过IBOutlet的方式,将xib中的控…
 一. UIViewController,视图控制器,它是UIKit中非常重要的组成部分.它由控制器+View两部分组成. 控制器功能: ->实现代码逻辑,决定它自带的View的界面显示. ->控制器与控制器之间的通信,如传值,跳转. ->以及与Model和View间的信息传递. ->可以通过addChirldViewController来添加子控制器.(如抽屉效果,多选tableView都是采用此方式) 视图功能: ->向用户展示信息 ->可以添加子视图,设置子视图的…
A.需求 1.优化项目设置 2.自定义导航栏标题按钮 3.多版本处理 4.iOS6和iOS7的适配 5.设置按钮背景 6.设置值UIBarButtonItem样式   code source: https://github.com/hellovoidworld/HelloLottery   B.实现 1.项目配置 (1)程序启动期间隐藏状态栏   (2)程序启动完成显示状态栏 AppDelegate: - (BOOL)application:(UIApplication *)applicatio…
今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简单介绍一下启动过程中常见的几个方法.首先我们通过XIB 创建了一个试图控制器(名字叫Empty ,不要问我为为啥它叫这个名字,因为我太懒了,鼠标点快了就没去改),又创建了一个UIView的子类(MyView),并且将Empty的对象 设置为窗口的根控制器,MyView 的一个对象设置为Empty的主…
一.概述 1.UIScrollView的contentSize, contentOffSet, contentInsets的作用和使用. 2.UIScrollView的一整个滚动过程的生命周期(开始滚动, 正在滚动, 结束滚动, 惯性减速结束滚动). 3.ScrollView的缩放 4.分页控件的基本实现和封装实现 二.核心 2.1 contentOffSet与contentInsets contentOffSet 作用: contentOffSet指的是内容的左上角和UIScrollView的…
Navigation导航设置 为了统一管理导航控制器,需要自定义导航控制器MJNavigationController,继承于UINavigationController.分别设置5个Navigation的控制器Class为此控制器. 白色状态栏 统一背景头部导航栏 设置所有Navigation导航栏字体颜色 二级页面隐藏底部导航条 1.白色状态栏.使用application管理状态栏 设置不使用控制器控制状态栏 在MJAppDelegate中设置: - (BOOL)application:(U…
转载记录, 请看原文: 1. iOS中的各种加载方法(initWithNibName,loadNibNamed,initWithCoder,awakeFromNib等等)简单使用   http://www.jianshu.com/p/b1352b483d85 2. initWithNibName与一般init的区别  http://blog.csdn.net/zengraoli/article/details/12882017 ============= 常用的加载方法大概有这么几个1.init…
UIViewController生命周期 UIViewControl是IOS程序中的一个重要组成部分,扮演者一个大管家的身份,管理着程序中的众多视图,今天看看了官方文档并做了如下一些简单的记录: 何时加载view,加载的原则是什么,视图何时消失等问题,文档中讲的都很详细. Controller的view最好在需要显示时再去加载,并且在系统发出内存警告时释放比必要的view及相关的数据对象. 一.UIViewController的初始化 初始化时会根据需要调用init,initWithCoder等…
本文结构: 1.首先是对UISearchBar的简介文字 2.初始化展现UISearchBar,并解析它的结构 3.属性.方法.代理等的一一介绍 4.日常的使用,包括单独对UISearchBar的配置.与其他控件的配合使用 一.UISearchBar的简介 UISearchBar : UIView <UIBarPositioning, UITextInputTraits> 涉及到UITextField.UILabel.UIButton.UIColor UISearchBarDelegate &…
问题引入,我想给NSString类扩展一些新的方法.在Objective-C中可以有两种方法,一是继承,二是类别.本文先不讨论类别,我们用继承的方法试一下: @interface StringEx : NSString - (void)myFunc; @end @implementation StringEx - (void)myFunc { NSLog(@"myFunc"); } 我想用下面的方法使用: StringEx* str = [[StringEx alloc] initWi…
点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法.   良好的风格: view.backgroundColor = [UIColor orangeColor]; [UIApplication sharedApplication].delegate;   不良的风格: [view setBackgroundColor:[UIColor orangeColor]]; UIApplication.sharedApplication.dele…
代码风格的重要性对于一个团队和项目来说不言而喻.网上有许多 Objective-C 的代码风格,但这份简洁而又最符合苹果的规范,同时有助于养成良好的代码习惯,也是我们团队一直遵循的代码风格. 写法没有对错,只是一种规范.各有各的一种规范,仅供参考. # 纽约时报 移动团队 Objective-C 规范指南 这份规范指南概括了纽约时报 iOS 团队的代码约定. ## 介绍 关于这个编程语言的所有规范,如果这里没有写到,那就在苹果的文档里: * [Objective-C 编程语言][Introduc…
显示数据列表 大家通常使用的是UITableView 不用说TableView 是大家的首选.在iOS6之前这也是必选.但是伴随着APP的成长一起都在变化目前更多的呈现一种块状的显示效果.之前的行式显示效果大家都已见的太多了.接下来大家和我一起来看看另外的一种控件 - UICollectionView 1.实例化2.自动布局3.横向4.纵向5.协议6.Cell 一.实例化   UICollectionView 的实例化和其它控件存在一个不同的地方.   init   initWithFrame:…
      本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法. 良好的风格: view.backgroundColor = [UIColor orangeColor]; [UIApplication sharedApplication].delegate; 不良的风格: [view setBackgroundColor:[UIColor orangeColor]];…