iOS实战开发常见问题(一)
来源:互联网 发布:淘宝怎样不被厂家投诉 编辑:程序博客网 时间:2024/06/05 14:51
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
- 没有设置背景色、没有设置内容
- 可能是文字颜色和背景色一样
2 0
- iOS实战开发常见问题(一)
- iOS 开发常见问题(一)
- ios开发中常见问题 (一)
- iOS 开发常见问题(一)
- iOS常见问题总结(一)
- iOS开发常见问题若干
- IOS开发常见问题
- iOS开发的常见问题
- ios开发---常见问题
- iOS开发常见问题集
- iOS开发常见问题(二)
- ios开发中的常见问题
- iOS 开发常见问题
- iOS 开发常见问题整理
- iOS开发常见问题
- ios开发常见问题
- IOS 开发常见问题列表
- 【java】itoo项目实战之常见问题一
- mysql索引
- Markdown语法示例
- 【Android】Android2.3版本以上谷歌为何推荐使用HttpURLConnection却弃用 Apache HttpClient
- 第十三周项目3-Dijkstra算法的验证
- CArray和CMap使用
- iOS实战开发常见问题(一)
- SQL lpad()函数
- Wpf Border圆角
- Python---pandas包
- jQuery.dataTables 中文乱序 (后台是有序) 自定义排序
- 小波变换
- 第9周项目2-(1)对称矩阵压缩存储的实现与应用
- IntelliJ IDEA---常用设置讲解(gif版)
- easyui filebox限制文件上传的类型