iOS知识点

// 当XIB 中的文件加载完成会调用此方法

xib  存储在硬盘中。 当你没有使用的时候它是不会加载到内存的。当你调用的时候加载到内存

-awakeFromNib

{

}

-(void)viewDidLoad

此方法在ViewController 实例中的view 被加载完毕后调用,如需要重定义某些要 在view 加载完毕后立刻执行的动作或者界面修改,则应该把代码写在此函数中。

// app启动完毕时调用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;


知识点:

strong                        数组      OC 对象 

weak                          UI控件    代理对象

assign                        基本数据类型    数值类型  bool    结构体

copy                          字符串NSString

知识点:查看文件路径  方法一:NSLog(@“ %@“,NSHomeDirectory());

方法二: 打个断点po NSHomeDirectory () 查看资源路径知识点:ViewController 的生命周期(Life Circle)loadView -> viewDidLoad ->viewWillAppear -> viewDidAppear ->viewWillDisappear ->viewDidDisappear -> dealloc loadView:一般情况下不用用到,除非需要重写设置View;viewDidLoad/dealloc:视图加载完成之后的设置和视图销毁的时候调用;viewWillAppear/viewWillDisappear:视图即将呈现和视图即将消失;viewDidAppear/viewDidDisappear:视图展现在屏幕的时候和视图完全消失在屏幕的时候调用,默认不做任何操作;如果

知识点: Xcode 7 中多了一个LaunchScreen,storyboard. 用来设置启动界面,如果没有启动页面,默认她的屏幕的大小是4s的大小知识点:

1.  {  int _age }_age  成员变量以下划线开头的好处,就是可以用于区分局部变量和成员变量。2.  属性变量里面有一个实例变量  _myButton@property (nonatomic, strong) UIButton *myButton;成员变量: _size  成员变量以下划线开头的好处,就是可以用于区分局部变量和成员变量。@interface MyViewController :UIViewControlle{UIButton *yourButton;int _count;id data;}成员变量用于类内部,无需与外界接触的变量。成员变量默认是protected,一般情况下,非子类对象无法访问因为成员变量不会生成set、get方法,所以外界无法与成员变量接触成员变量是定义在{}号中的变量,如果变量的数据类型是一个类则称这个变量为实例变量。因为实例变量是成员变量的一种特殊情况,所以实例变量也是类内部使用的,无需与外部接触的变量,这个也就是所谓的类私有变量。局部变量:-(void)viewDidLoad{// 局部变量NSArray *array = [[NSArray alloc] initWithObject:@“123”,nil];}局部变量是根据其生存周期定义的,在源文件中的array,其生命周期是在以“{ }”为界限的代码块中,虽然它的名称与成员变量相同,但不是同一个变量。属性变量:@interface MyViewController :UIViewControlle@property (nonatomic, strong) UIButton *myButton;@end因为编译器会自动为你生成以下划线开头的实例变量_myButton,不需要自己手动再去写实例变量。而且也不需要在.m文件中写@synthesize myButton,也会自动为你生成setter,getter方法。属性变量是用于与其他对象交互的变量。属性变量的好处就是允许让其他对象访问到该变量(因为属性创建过程中自动产生了set 和get方法)。当然,你可以设置只读或者可写等,设置方法也可自定义。现在大家似乎都不怎么喜欢用成员变量来定义类的变量,都喜欢用属性变量来定义类的变量。把需要与外部接触的变量定义在.h文件中,只在本类中使用的变量定义在.m文件中。实例变量:实例变量本质上就是成员变量,只是实例是针对类而言,编译器会自动为你生成以下划线开头的实例变量  _myButton,也会自动为你生成setter,getter方法。如果.m文件中写了@synthesize myButton,那么生成的实例变量就是myButton;如果没写@synthesize myButton,那么生成的实例变量就是_myButton。全局变量:  定义:在@implementation外定义的变量(在@implementation中定义也是可以但是一般不这么干)举例://规范的 static int hu=3;//全局变量NSString*sttr1=@"S1ViewController";//全局变量@implementation S1ViewController@end 

知识点:Nib  nib是3.0版本以前的产物,在终端下我们可以看到,NIB其实是一个文件夹,里面有可执行的二进制文件;Xib  xib是一个基于xml ( 可扩展标记语言 ) 的描述文件,可以实现可视化编程。无论nib也好,xib也好,最终在执行UIViewController生命周期函数loadView之前,都会转化成可执行的nib文件。// static  是只有这个文件可以访问。 const  防止其他文件去改static NSString *const MIOCellId = @"cell";Storyboard:storyboard是多个xib文件集合的描述文件,也采用xml格式。那么storyboard与xib比较,区别在于:一个工程中可以有多个xib文件,一个xib文件对应着一个视图控制器和多个视图。而使用storyboard时,一个工程只需要一个主storyboard文件就可以了。因此,在包含多个视图控制器的情况下,采用storyboard管理比较方便,而且storyboard还可以描述界面之间的导航关系。加载过程:当app 启动时,UIApplicaiton 会自动加载main.storyboard 文件。 同时,会自动加载 main.storyboard  上的第一个视图控制器 (view controller),并且,将该 view controller 所对应的 View 加载到UIWindow 对象中。 #import#import "AppDelegate.h"

int main(int argc, char *argv[])

{

@autoreleasepool {

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

这行代码的作用是,将app delegate class 传给 UIApplicationMain。  因为整个App 启动和运行的入口,就在UIApplicationMain中。

需求:常见知识点

1.方法名字 带有冒号的 都是有参数的

2.[self setNeedsDisplay];  会自动调用drawRect 方法

3.[self setNeedsLayout]会默认调用layoutSubView 就可以处理子视图中的一些数据了

4.因为UITextView 继承自 ScrollView 系统会自动设置64 的顶部间距

5.作为UIView 没有 image 属性 和 backgroudImage 属性 只能将整张图片画到UIView 上面去

6.load 是只要类所在的文件被调用,而initialize是在类或者其子类的第一个方法被调用之前调用。相同点是:方法只会被调用一次。

7. _deal = deal;复制给本页面的属性, 在本页面别的方法里就能调用这个值

8.[self viewDidLoad]; 在view创建完毕后,最终都会调用viewDidLoad。一般我们会在这里做一些界面的初始化操作,比如往view中添加一些子视图,从数据库或者网络加载模型数据装备到子视图中。

9.当一个控件没有尺寸, 但是设置了子控件是可以显示出的,但是却不能点击交互。

10. (int)(page+0.5) 四舍五入的运算

需求:  一进来就弹出键盘

[textView becomeFirstResponder];

需求:取消第一响应者  (退出键盘)

[searchBar resignFirstResponder];

需求:  退下键盘

[self.view  endEditing:YES];

需求:  换单词

com+F    比如  button 换成 MIOLeftMenuButton  之后点击all  然后点 done  搞定

需求:切换控制器

modal 出来的控制器 用dismiss 销毁

[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:publish animated:NO completion:nil];

push 出来的控制器 用pop 销毁  切换是可逆的。

[self.navigationController popViewControllerAnimated:YES];

3. 切换 window 的rootViewController  新特性  【前两种都是销毁会存在内存中,window 会销毁】

需求:设置启动图片延长

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[NSThread sleepForTimeInterval:0.2];// 这一句代码延长启动时长

return YES;

}

需求:计算总页数

// 总页数 == (总个数 + 每页的最大数 - 1) / 每页最大数

NSUInteger rows = (sqaures.count + maxCols - 1) / maxCols;

需求:查看服务器返回的数据

//发送请求给服务器

//查看服务器返回的数据

MIOLog(@"%@",responseObject);

//获取帖子数据  转化成plist 文件

[responseObject writeToFile:@"/Users/linjieai2008qqcom/Desktop/tiezi.plist" atomically:YES];

需求:三种优先级

window_.windowLevel =UIWindowLevelAlert;最高  2

window_.windowLevel =UIWindowLevelStatusBar; 中等 1

window_.windowLevel =UIWindowLevelNormal; 最低 0

需求:获取应用程序窗口的根控制器

[UIApplication sharedApplication].keyWindow.rootViewController

需求:返回控制器的方向

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskLandscape;

}

需求:不需要跟随父控件的尺寸变化而伸缩

self.autoresizingMask = UIViewAutoresizingNone

需求:永远可以上拉下拽控件

self.collectionview.alwaysBounceVertical = YES;

需求:查找沙盒路径

打印NSLog(@“%@”file); 就可以找到sqlite 沙盒路径  就能查看 团购收藏的内容

需求:换单词

com+F    比如  button 换成 MIOLeftMenuButton  之后点击all  然后点 done  搞定

需求 :侧滑动画功能的实现

[UIView animateWithDuration:2.0 animations:^{

self.navigationController.view.transform = CGAffineTransformMakeTranslation(200, 0);

}];

需求:配置PCH  :

1.创建pch

2.在building settings 中 设置 Apple LLVM 7.1 language

3.Precompile Prefix Header 设置为YES 下一行

Prefix Heaser 设置内容为: $(SRCROOT)/网易新闻/pchFile.pch

需求:默认第一个为选中按钮

/** 选中按钮  */

@property (nonatomic, weak) UIButton*  selectedButton  ;

//监听按钮点击

-(void)buttonClick:(UIButton* )button

{

self.selectedButton.selected = NO;

button.selected = YES;

self.selectedButton = button;

}

UIButton *newsButton =[self setupBtnWithIcon:@"sidebar_nav_news" title:@"新闻" bgColor:MIOColorRGBA(202, 68, 73, alpha)];

[self buttonClick:newsButton];

需求:调节状态栏字体亮度为白色

//设置状态栏字体为亮色

-(UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleLightContent;

}

问题: 如果还无法正常现实  就是优先级不够  ,如果还不行设置plist 文件

-(void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

[UIApplication  sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

}



状态栏的样式

- (UIStatusBarStyle)preferredStatusBarStyle;

Ø 状态栏的可见性

- (BOOL)prefersStatusBarHidden;

n 通过[UIApplication sharedApplication]可以获得这个单例对象

n

需求:子类继承父类重写时候  有返回值和没返回值的情况

1. 没有返回值

-(void)viewDidAppear:(BOOL)animated

{

[super viewDidAppear:animated];

}

2.有返回值

- (id)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

return self;

}

需求:验证对象是否被销毁了

-(void)dealloc

{

NSLog(@“ %s ”,__func__);

}

需求:设置随机背景色

self.view.backgroundColor =[UIColor colorWithRed:arc4random_uniform(100)/100.0 green:arc4random_uniform(100)/100.0 blue:arc4random_uniform(100)/100.0 alpha:1.0];

需求:1.ios button 点击Action连接到.h 文件的 @interface 会在 @implementatopm生成方法

2. 链接到.m 文件中 @interface 中 也会在@implementation 生成方法

3. 直接链接到.m 的@implementation  会生成方法 ! 这三个有什么区别吗

解决:1..h 文件里面的成员外部可以访问(可以设置输出口)

2. 会自动生成set 和 get 方法,如果选择Action(可以设置输出口)

3. 可以生成set  和 get 方法, 不能设置输出口

需求:点语法和setter 如何区分使用?

例子: [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]

btn.contentVerticalAlignment = UIControlContentVerticalAlignment;

解决:用点语法  实际上是调用了属性的set 和 get方法

UIButton titleColor 是个方法不是属性  所以点不出来  setTitleColor  是直接调用的方法

需求://需要转换坐标系

CGRect newFrame =[from convertRect:from.bounds toView:window];

self.containerView.CenterX = CGRectGetMidX(newFrame);

self.containerView.y = CGRectGetMaxY(newFrame);

比如self.red = [0 ,50, 100 ,100]  self.blue = [100,150,100,100]

理解:  以红色视图的坐标点为远点的图形 CGRectMake(50,50,50,50) 转换成以  变成self.blue 为坐标原点的坐标点  的值 (150 150 ,50, 50);

CGRect newRect =[self.red convertRect:CGRectMake(50,50,50,50) toView:self.blue];

需求:UIViewController    UIView  的初始化

UIViewController 的初始化在  viewDidLoad

UIView 的自定义xib  初始化在  awakeFromNib

需求 : 账号密码 判断的时候  不会造成重复判断  直接退出 不执行后面的代码

if(username.length == 0)

{

[self showInfo:@"账号不能为空" message:@"提示" cancelMess:@"我知道了"];

return;

//return 就不会提醒后面的信息了。

}


需求 :打印屏幕的尺寸

NSLog(@“  %@ “,NSStringFromCGSize([ UIScreen mainScreen].bounds.size))

需求 : 不设置启动图片的话  屏幕会变成 4s 的尺寸

launchScreen 其实是把控制器设置了一个截屏.  生成了一个图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • 内容均转自标哥的技术博客 只是按照自己的习惯进行简单的整理 1、对数组中的元素去重复 1.第一种方法:开辟新的内存...
    Kk太阳阅读 5,599评论 0 21
  • 随身带上mac与源码进行学习与介绍 参考:http://www.infocool.net/kb/IOS/20160...
    桃逸阅读 436评论 0 3
  • 接《iOS知识点大总结一》 三十四、主线程操作UI(对UI进行更新只能在主线程进行) 解释:所谓的在主线程更新UI...
    RunningMan_Fly阅读 1,398评论 0 0
  • iOS需要学习的内容 UI 基础控件: UIButton、UIImageView、UILable、UIView、U...
    cuptea阅读 374评论 1 0
  • 沙城就是一个人的记忆 如果你不往前走 就会被沙子掩埋。 可如果没有你 我宁愿被沙子掩埋 话虽如此, 总有一天 ...
    沛尔豆助阅读 440评论 0 1