UITableView 的backgroundView问题
项目里面有这样一个需求,给tableview改变背景颜色这样直接改就好了 self.tableView.backgroundColor = [UIColor redColor]; 在tableview的底部添加一个 提示语 “上拉查看详情”,本来想直接添加在 table的backgroundview上面,结果不显示,打印 backgroundview,为nil。 查看backgroundview的解释 : the background view will be automatically resized to track the size of the table view. thi...【详细】
ios tableview
2018年02月28日 赞:0 评论:0 阅读:681
初始化的时候 使用new 和alloc init 的区别
创建对象可以使用 [[className alloc] init],也可以使用 [className new]。但是使用new的这种比较少见,不过面试的时候可能会被问到,那么两者到底有什么区别。 [className new]基本等同于[[className alloc] init],区别只在于alloc分配内存的时候使用了zone.zone给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代...【详细】
2017年06月27日 赞:0 评论:0 阅读:418
17、实现description方法
方便我们查看对象信息 系统的直接打印就好了,比如说打印一个数组,打印一个字典,就可以直接看到key -value ,可以看到数组的内容,但是如果是我们自定义的类的话,打印出来的是一个类名,一个地址。想要打印所有的信息,就充血description方法,把所有参数都拼接进去。 重写description 举个例子 import @interface Person : NSObject @property (non...【详细】
2017年06月23日 赞:0 评论:0 阅读:556
16、提供“全能初始化方法”
一开始看的时候没彻底理解,怎么覆盖,怎么避免子类调用父类的init 方法啊,其实啊,很多东西,静下心来就看懂了,不过,不要做语言的巨人,行动的矮子,事必躬行。开始写代码。 自定义的类,最好提供一个全能初始化方法,并且让其他初始化方法都调用它。 如果全能初始化方法与父类不同,那么就覆盖父类中的全能初始化方法。...【详细】
2017年06月22日 赞:0 评论:0 阅读:400
视图半透明,子控件不透明
intervalView.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.3]; //设置视图半透明,而子控件不透明【详细】
2017年06月14日 赞:0 评论:0 阅读:344
UIKIT_EXTERN
我就是记录一下,这个我现在不理解,以后再来理解【详细】
2017年06月14日 赞:0 评论:0 阅读:391
14、理解类对象的用意
OC对象的本质是什么? 在运行期检查对象类型。 也叫做,类信息查询。 描述OC对象所用的数据结构定义在运行期程序库的头文件里,id类型本身也定义在这里 typedef struct object_object{ Class isa; } *id; 动态能力相关的isa指针 每个Objective-C对象都有一个隐藏的数据结构,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。这个指针指...【详细】
2017年06月14日 赞:0 评论:0 阅读:596
强引用,弱引用,delloc
今天又被同事狠狠的鄙视了一下,因为我的代码的ViewController里面的delloc 竟然不调用,还有的代理是用assign修饰的,就在学习的时候我记得,delloc在ViewController销毁的时候会自动调用,但是我已经忘了是怎么回事了,基础薄弱啊,活该被鄙视啊,翻看资料。 delloc 什么时候被调用? 答:delloc在这个类对象引用计数为0的时候调用 什么是强引...【详细】
2017年06月09日 赞:0 评论:0 阅读:575
13、用“方法调配技术”调试“黑盒方法”
方法调配,不过就是方法交换,这个我们在项目中已经用到过了,这个方法可以为已有的方法添加新功能。这个理解的差不多了。【详细】
2017年06月08日 赞:0 评论:0 阅读:517
12、理解消息转发机制
根据前一章节,方法调用其实就是给对象发送消息,方法调用,就是在该类中查询该方法,然后执行,如果查询不到该方法会怎么样呢?我的理解是这样的,查不到该方法,就动态添加一个方法。这个有什么作用吗,我觉得应该很少有人用到,毕竟,你自己写的类,自己写的对象,有没有这个方法你不知道啊,没有这个方法你调用什么呢...【详细】
2017年06月08日 赞:0 评论:0 阅读:462
11、理解objc_msgSend的作用
在这里我认识了一个新名字,内联函数。 inline(小心,不是online),翻译成“内联”或“内嵌”。意指:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说的参数入栈等操作,所以...【详细】
2017年06月08日 赞:0 评论:0 阅读:455
BarButtonItem + Button + SizeToFit
为什么写完了总是无缘无故丢了,,,, +(UIBarButtonItem )backItemWithImage:(UIImage )image WithHighlightedImage:(UIImage )HighlightedImage Target:(id)target action:(SEL)action title:(NSString )title { UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn sizeToFit]; [btn setTitle:title forState:UIControlStateNormal]; [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [btn setTitleColor:[UIColo...【详细】
2017年06月07日 赞:0 评论:0 阅读:572
10、在既有类中使用关联对象存放自定义数据
其实就是关联对象。 Category 可以给你自己的类,系统的类,添加一些额外的方法。不是继承。可以重载原方法,但是不建议这样做,会覆盖掉原方法。只要不调用,就不用非得实现。不能添加属性。那么给原来既有的类添加属性就用到了关联对象。 说cateGory不能增加属性,我也信了,但是有这么一个问题,也不知道我从哪个大神那里拷贝...【详细】
ios
2017年06月07日 赞:0 评论:0 阅读:787
UINavigationController 的层次结构
UINavigationController 导航视图控制器,管理内容视图的切换,自带动画。 由三部分组成: 1.导航栏:NavigationBar,在最上面,主要负责视图的弹出和控制主视图,高度是44px/32px(横过来),上面的logo是20*20px 2.内容视图,中间部分,用于显示内容 3.工具栏(UIToolBar),默认是隐藏的,用户可以自己添加工具栏,高度是44px/32px(横过来) UIViewController(...【详细】
2017年06月06日 赞:0 评论:0 阅读:429
9、以“类簇模式”隐藏实现细节
我理解的类簇 其实就是工厂模式 不过在这里面看到的我还不太会用的枚举类型我想再写一遍 typedef NS_ENUM(NSUInteger, EOCEmployeeType){ EOCEmployeeTypeDeveloper, EOCEmployeeTypeDesigner, EOCEmployeeTypeFinance, }; (EOCEmployee*)employeeWithType:(EOCEmployeeType)type; 【详细】
2017年06月06日 赞:0 评论:0 阅读:531
8、理解“对象等同性”这一概念
isEqual 和hash 比较等同性,大概的意思就是 isEqual 比较的是对象的等同性,== 比较的是基本数据类型的等同性, 这儿有一篇文章 ,来自简书上的,关于面熟isEqual和hash,给自己看 这个自定义类型的重写isEqual我粘过来,书上也是这么写的 (BOOL)isEqual:(id)object { if (self == object) { return YES; } if (![object isKindOfClass:[Person class]]) { return NO; } return [self i...【详细】
2017年06月06日 赞:0 评论:0 阅读:536
7、在对象内部尽量直接访问实例变量
对象内部尽量直接访问实例变量 例如不要访问self.name ,访问 _ name 1 这样速度相对比较快 2 直接访问实例变量,不调用set方法,就绕过了“内存管理语义” 3 直接访问实例变量,不能出发KVO 4 通过属性访问有助于排查与之相关的错误,在set get方法中添加断点 所以吧,在写入的时候,使用set来做,在读取的时候使用实例变量,既提高了速度...【详细】
2017年06月06日 赞:0 评论:0 阅读:565
6、理解“属性”这一概念
@dynamic与@synthesize @property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize没写,那么默认的就是@syntheszie var = _var; @synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。 @dynamic告诉编译器,属性的setter与getter方法由用户自己实现,不自动生成。(当然对于readonly的属性只需提供ge...【详细】
2017年06月06日 赞:0 评论:0 阅读:420
熟悉Objective-C
1、了解Objective-C语言的起源 使用“消息结构”的面向对象的语言。使用消息结构的语言,其运行时所应执行的代码由运行环境决定,而使用“函数调用”的语言,则由编译器决定。 NSString someString = @"The String"; 此变量为指向NSString 的指针,所有的oc语言的对象占内存总是分配在“堆空间(heap space)”,而绝不会分配在栈(stack)上...【详细】
ios
2017年06月05日 赞:0 评论:0 阅读:967
面试准备1
想要面试,感觉差的东西太多了,我觉得,我就是那只温水里的青蛙,煮的差不多了,快要熟了。现在让我去面试,我可能连别的公司的门都不敢进。 前段时间特别火的那个 ,【详细】
准备面试
2017年06月05日 赞:0 评论:0 阅读:582
共20个 共1页
sina weixin mail 回到顶部