新浪微博知识点总结:http://www.cnblogs.com/needly/p/3401161.html
1、在加载view的时候,如果不能显示:
(1)是否设置宽高,如果设置,打印出来看看是否没有值;
(2)位置对不对;
(3)hidden检查是否设置为YES;
(4)没有添加到控制器view上;
(5)资源文件是否加载到项目当中;
2、 一个UIScrollView无法滚动:
(1)contentSize没有值
(2)不能接收到触摸事件
一个控件无法跟用户交互(无法接收事件)的可能原因
* (父控件的)userInteractionEnabled =NO;
* (父控件的)hidden =YES
* (父控件的)alpha <=0.01
* (父控件的)背景是clearColor
3、屏幕适配:
(1)使用主屏幕的比例进行位置和大小的设置;
(2)使用[[UIScreenmainScreen]bounds].size获取到的是整个屏幕的宽高;
使用[UIScreenmainScreen].applicationFrame.size获取到去掉状态栏的宽高,起始坐标是(0,20);
使用navigationController,得到的view的frame是从(0,0)开始的;
4、设置位置已经固定的bounds的方法,有以下两种:
start.bounds = CGRectMake(0, 0, startNormal.size.width, startNormal.size.height);
start.bounds = (CGRect){CGPointZero, startNormal.size};//与上面一句的作用相同
5、只要是继承UIControl,就会有四个状态:
UIControlStateNormal:正常状态
UIControlStateHighlight:高亮状态,人工控制,长按控件达到这个效果
UIControlStateSelected:被选中,代码控制,selected = YES
UIControlStateDisable:失效,不可用(代码控制,enable=NO)
6、控制器之间的切换方式:
(1)push方法,即用导航控制器,使用栈的方式。
特点:1.带有返回按钮;
2.之前的控制器不能销毁(因为栈有“先进后出”的特性)
(2)模态(Modal)
特点:是由上一个控制器来控制这个控制器的弹出
例如iphone通讯录管理程序中,追加新的通讯纪录时,就是使用这种模态画面
7、将 .plist文件中的一个子种类取出来的程序方法
// 在bundle中取出地址
NSURL *url = [[NSBundlemainBundle]URLForResource:@"more"withExtension:@".plist"];
NSArray *array = [NSDictionarydictionaryWithContentsOfURL:url][@"zh_CN"];//取出里面名字为zh_CN的类别
[array writeToFile:@"/Users/apple/Desktop/More.plist"atomically:YES];//将数组写道文件中
8、objc_msgSend函数传递对象的时候64位和32位兼容的问题:
32位上直接:
id value = ...;
objc_msgSend(self, selector, value);64位上需要使用:
id value = ...;
int (*action)(id, SEL, id) = (int(*)(id, SEL, id))objc_msgSend;
action(self, selector, value);9、
IOS回调机制
监听到的某个状态,通知控制器的三种方法:(在对象之间的通讯)
block:一对一
1> 所有代码集成在一起,便于维护,便于书写
2> 适合于少量的协议方法,如果方法过多,开发难度会直线上升
3> 没有@optional描述符
代理:一对一
1> 必须针对每一个方法,去编写具体的实现,在开发时会上下切换代码
2> 对于复杂对象的开发,使用代理协议,通常便于调试和扩展
3> 使用@optional描述符,可以指定方法不一定被实现
消息通知:一对多
详细讲解:http://www.apkbus.com/android-142353-1-1.html
10 、数据列表中的[]:表示数组,使用NSArray[关键字]取出;
{}:表示字典,使用for in循环取出每个字典转成模型数据;
11、导航栏的半透明度设置:
bar.translucent =NO;//去掉导航条的半透明
12、数据缓冲机制:方法的网址:https://github.com/dominikkrejcik/Objective-C-Stack---Queue
(1)使用队列的方法:先入先出的原则;
(2)使用栈的方式:先入后出的原则;
本文总结了iOS开发过程中的常见问题与解决方法,包括视图加载、UIScrollView滚动、屏幕适配、控制器切换、plist文件操作、数据缓冲机制等核心技术点。通过详细解析,旨在帮助开发者提高iOS应用开发效率与质量。

1万+

被折叠的 条评论
为什么被折叠?



