01- - -1.获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar的关系 4.[UIScreen mainScreen].applicationFrame的取值 5.按钮的状态 6.错误调试技巧 7.按钮的各种状态设置
2014-07-09 08:18
603 查看
1.获得项目中info.plist文件的内容
1> [NSBundle mainBundle].infoDictionary
2> 版本号在info.plist中的key:kCFBundleVersionKey
2.沙盒的数据存储及读取
1> 数据存储:
2> 数据读取:
(1,2)小知识点综合例子: 沙盒中存储版本号并读取版本号和应用程序里的版本号对比是否相同 来判断所要跳转的根视图控制器
3.控制器view的高度和状态栏statusBar的关系
创建控制器的view时,系统会检测状态栏是否显示
* 如果有状态栏,那么控制器view的高度是460(iPhone5中是548)
* 如果没有状态栏,那么控制器view的高度是480(iPhone5中是568)
ps: statusBar状态栏的高度占了20个像素点
4.[UIScreen mainScreen].applicationFrame的取值
以3.5inch为例(320x480)
1> 没有状态栏,applicationFrame的值{{0, 0}, {320, 480}}
2> 有状态栏,applicationFrame的值{{0, 20}, {320, 460}}
5.按钮的状态
UIControlStateNormal 普通(默认的状态)
UIControlStateHighlighted 高亮(用户长按的时候)
UIControlStateDisabled 失效(通过代码控制:enabled属性)
UIControlStateSelected 选中(通过代码控制:selected属性)
(5)例子 给一个按钮添加监听事件 点一下选中 再点一下选中就取消
6.错误调试技巧
1> 一个控件无法显示出来的可能原因
* 没有宽高(宽高为0)
* 位置不对
* hidden=YES
* 没有被addSubview到屏幕上
2> 一个UIScrollView无法滚动
* contentSize没有值
* 不能接收到触摸事件
3> 一个控件无法跟用户交互(无法接收事件)的可能原因
* (父控件的)userInteractionEnabled = NO;
* (父控件的)hidden = YES
* (父控件的)alpha <= 0.01
* (父控件的)背景是clearColor
7.按钮的各种状态设置
// 高亮状态下不更改图片的颜色
self.adjustsImageWhenHighlighted = NO;
// 是否选中状态
self.selected = YES;
// 是否可用状态
self.enabled = YES;
1> [NSBundle mainBundle].infoDictionary
2> 版本号在info.plist中的key:kCFBundleVersionKey
2.沙盒的数据存储及读取
1> 数据存储:
[[NSUserDefaults standardUserDefaults] setObject:version forKey:versionKey]; 存储数据时记得同步一下 [[NSUserDefaults standardUserDefaults] synchronize]; 这两句话一般是成对存在的
2> 数据读取:
[[NSUserDefaults standardUserDefaults] objectForKey:versionKey];
(1,2)小知识点综合例子: 沙盒中存储版本号并读取版本号和应用程序里的版本号对比是否相同 来判断所要跳转的根视图控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; /* 二、判断用户是否第一次使用这个版本 1.将沙盒中的版本号和info.plist中的版本号进行比较 2.第一次使用:显示版本新特性界面 3.非第一次使用:显示主界面(显示状态栏) */ // 1.从info.plist字典中取出版本号 NSString *versionKey = (NSString *)kCFBundleVersionKey; NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:versionKey]; // 2.取出存在于沙盒中的版本号 NSString *saveVersion = [[NSUserDefaults standardUserDefaults] objectForKey:versionKey]; // 3.判断info.plist中的版本号和沙盒中的版本号进行比较 if ([saveVersion isEqualToString:version]) { // 版本号相同 非第一次使用:显示主界面(显示状态栏) // 显示状态栏 application.statusBarHidden = NO; self.window.rootViewController = [[MainViewController alloc]init]; } else // 版本号不同 非第一次使用:显示主界面(显示状态栏) { [[NSUserDefaults standardUserDefaults] setObject:version forKey:versionKey]; [[NSUserDefaults standardUserDefaults] synchronize]; // 同步 self.window.rootViewController = [[NewFeatureViewController alloc] init]; } [self.window makeKeyAndVisible]; return YES; }
3.控制器view的高度和状态栏statusBar的关系
创建控制器的view时,系统会检测状态栏是否显示
* 如果有状态栏,那么控制器view的高度是460(iPhone5中是548)
* 如果没有状态栏,那么控制器view的高度是480(iPhone5中是568)
ps: statusBar状态栏的高度占了20个像素点
4.[UIScreen mainScreen].applicationFrame的取值
以3.5inch为例(320x480)
1> 没有状态栏,applicationFrame的值{{0, 0}, {320, 480}}
2> 有状态栏,applicationFrame的值{{0, 20}, {320, 460}}
5.按钮的状态
UIControlStateNormal 普通(默认的状态)
UIControlStateHighlighted 高亮(用户长按的时候)
UIControlStateDisabled 失效(通过代码控制:enabled属性)
UIControlStateSelected 选中(通过代码控制:selected属性)
(5)例子 给一个按钮添加监听事件 点一下选中 再点一下选中就取消
// 1.给UIButton添加监听事件 [shareBtn addTarget:self action:@selector(shareClick:) forControlEvents: UIControlEventTouchUpInside]; // 2.设置默认状态为没有选中状态 shareBtn.selected = NO; // 3.设置监听的方法为按钮状态的反选 - (void)shareClick:(UIButton *)btn { btn.selected = !btn.selected; } // 三部曲搞定
6.错误调试技巧
1> 一个控件无法显示出来的可能原因
* 没有宽高(宽高为0)
* 位置不对
* hidden=YES
* 没有被addSubview到屏幕上
2> 一个UIScrollView无法滚动
* contentSize没有值
* 不能接收到触摸事件
3> 一个控件无法跟用户交互(无法接收事件)的可能原因
* (父控件的)userInteractionEnabled = NO;
* (父控件的)hidden = YES
* (父控件的)alpha <= 0.01
* (父控件的)背景是clearColor
7.按钮的各种状态设置
// 高亮状态下不更改图片的颜色
self.adjustsImageWhenHighlighted = NO;
// 是否选中状态
self.selected = YES;
// 是否可用状态
self.enabled = YES;
相关文章推荐
- 1.获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar的关系 4.[UIScreen mainScreen].application
- IOS 获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar
- 1211笔记关于//modal//更改窗口的根控制器//数据存取//Plist属性列表//-“沙盒机制”//plis属性列表//偏好设置//归档普通对象//联系人数据存储//协议与回调函数
- 1211笔记关于//modal//更改窗口的根控制器//数据存取//Plist属性列表//-“沙盒机制”//plis属性列表//偏好设置//归档普通对象//联系人数据存储//协议与回调函数
- 沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件
- 数据在沙盒中存储的三种方法---plist存储,偏好设置存储,归档
- 数组和字典的writeToFile方法——在项目开发中处理网络数据的时候,可以把请求获得的网络数据保存为plist文件,这样更方便开发
- matlab写数据到txt文件,C语言读取文件内容到数组@项目简介:基于PSS序列(频域)估计整数倍频偏
- swift读取plist文件内容用UITableView展示
- plist文件的 偏好设置 存储与读取 自定义对象归档
- Swift - .plist文件数据的读取和存储
- 4、在项目中添加一个Entitlements.plist文件,设置允许调试。
- Swift - .plist文件数据的读取和存储
- 使用文件进行数据存储及读取文件内容
- iPhone开发之UITableView的小试牛刀 利用MVC模式从plist文件读取数据并字典转模型的格式实现
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- [数据存储之六]plist文件读取
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- ios 沙盒 plist 数据的读取和存储