iOS实战开发常见问题(一)
2016-11-24 10:41
183 查看
storyboard文件的认识
用来描述软件界面默认情况下,程序一启动就会加载Main.storyboard
加载storyboard时,会首先创建和显示箭头所指的控制器界面
IBAction和IBOutlet
IBAction:本质就是void
能让方法具备连线的功能
IBOutlet
能让属性具备连线的功能
storyboard连线容易出现的问题
连接的方法代码被删掉,但是连线没有去掉可能会出现方法找不到错误
unrecognized selector sent to instance
连接的属性代码被删掉,但是连线没有去掉
setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key
UIViewController(控制器)的认识
一个控制器负责管理一个大界面控制器负责界面的创建、事件处理等
类扩展
格式@interface 类名() /** 属性、方法的声明 */ @end
作用
为某个类增加额外的属性和方法声明
可以写在.h和.m文件中
项目属性
Product Name
软件名称、产品名称、项目名称
Organization Name
公司名称、组织名称
Organization Identifier
公司的唯一标识
一般是公司域名的反写,比如com.520it
Bundle Identifier
软件的唯一标识
一般是Organization Identifier + Product Name
添加项目到文件的正确选则
九宫格计算思路
利用控件的索引index计算出控件所在的行号和列号利用列号计算控件的x值
利用行号计算控件的y值
例
如
//商品的宽高 CGFloat shopW = 90; CGFloat shopH = 110; //一行要展示的列数 int cols = 3; //每一列之间的间距 CGFloat colMargin = (self.shopsView.frame.size.width - cols * shopW) / (cols - 1); //每一行之间的间距 CGFloat rowMargin = 50; //创建一个父控件 ShopView * shopView = [ShopView shopView]; //商品的索引 NSInteger index = self.shopsView.subviews.count; // 给商品控件传递商品模型 shopView.shop = self.shops[index]; //商品的x值 NSUInteger col = index % cols; CGFloat shopX = col * (colMargin + shopW); //商品的y值 NSUInteger row = index / cols; CGFloat shopY = row * (rowMargin + shopH); shopView.frame = CGRectMake(shopX, shopY, shopW, shopH);
HUD
其他说法:指示器、遮盖、蒙板半透明HUD的做法
背景色设置为半透明颜色
定时任务
方法1:performSelector// 1.5s后自动调用self的hideHUD方法 [self performSelector:@selector(hideHUD) withObject:nil afterDelay:1.5];
方法2:GCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 1.5s后自动执行这个block里面的代码 self.hud.alpha = 0.0; });
方法3:NSTimer
// 1.5s后自动调用self的hideHUD方法 [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(hideHUD) userInfo:nil repeats:NO]; // repeats如果为YES,意味着每隔1.5s都会调用一次self的hidHUD方法
常见问题
项目里面的某个.m文件无法使用检查:Build Phases -> Compile Sources
项目里面的某个资源文件(比如plist、音频等)无法使用
检查:Build Phases -> Copy Bundle Resources
模型
什么是模型?专门用来存放数据的对象
一般都是一些直接继承自NSObject的纯对象
内部会提供一些属性来存放数据
一个控件看不见有哪些可能?
宽度或者高度其实为0位置不对(比如是个负数或者超大的数,已经超出屏幕)
hidden == YES
alpha <= 0.01
没有设置背景色、没有设置内容
可能是文字颜色和背景色一样
相关文章推荐
- [Android开发常见问题-19] Android为什么比IOS和WP慢?
- iOS开发那些事-Git在Xcode中的配置与使用常见问题总结
- iOS开发中两个常见问题的处理
- ios开发中常见问题 (一)
- iOS开发那些事-Git在Xcode中的配置与使用常见问题总结
- IOS开发常见问题
- iOS开发:常见问题及解决方案(持续更新...)
- 常见iOS开发问题知识点笔记
- iOS项目开发实战——制作视图的平移动画以及解决移动异常问题
- ios开发常见问题及解决办法
- iOS开发常见问题集
- IOS开发的一些技巧和常见问题
- IOS开发的一些技巧和常见问题
- IOS开发的一些技巧和常见问题
- iOS开发的常见问题
- Mac/iOS下开发程序常见问题
- iOS开发那些事-Git在Xcode中的配置与使用常见问题总结 推荐
- ios开发---常见问题
- iOS开发常见问题(不断更新)
- ios开发面试常见问题及答案