2015年07月04日第四天笔记

来源:互联网 发布:手机专业相机软件 编辑:程序博客网 时间:2024/04/30 05:12

应用管理
2015年07月04日14:04:52
思路归纳

1.图像变大
1)记录原来图像的frame,以便在恢复方法里用
2)计算放大后图片的位置
要考虑的
动画的时候 只做改变frame的操作
3)创建并添加一个遮罩层(实际是个按钮),设置其背景颜色,开始透明度,注册点击事件
要考虑的
动画之前
创建,添加,设置颜色,设置默认透明度为0,是否会在别的方法用
动画时候
改变透明度
4)让图片动画变动,让透明度动画变大
5)让图片按钮在屏幕的最上层

2.图像变小
1)让图片位置动画还原到原来的frame
2)让遮罩层动画变透明度为0
3)动画完成后移除遮罩层

3.图片的点击事件 判断遮罩层是否存在
1)变大
2)变小

4.下一张
1)每次判断上张是否到最后一张,是则返回

让选项按钮可点

2)使用模型数组,取出当前题目的数据
3)给控件设置数据
4)调用方法,动态添加答案按钮
5)调用方法,动态添加选项按钮

6)每次判断当前张是否是最后一张,是则让下一张按钮失效

5.添加答案按钮

1)先删除上次动态产生的答案按钮
2)设置答案按钮的宽高,按钮间距,按钮左边距
3)根据当前记录数据得到答案的长度进而确定按钮的个数
4)创建符合这个记录的按钮
5)每次创建计算答案按钮的坐标,通过坐标和边距生成按钮
6)设置按钮普通,高亮的的背景图片;设置按钮的标题颜色
7)给答案按钮注册一个点击事件用来处理点击恢复选项

6.监听按钮的点击
1)先获取按钮上的文字
2)如果有按钮上有文字
3)清除按钮上的文字
4)找到与按钮tag一样的选项按钮
5)将选项按钮显示
6) 将按钮标题变成黑色

  1. 将按钮标题变成色
    1)获取答案视图控件
    2)遍历控件上所有答案按钮 一一设置颜色 标准状态下

8.添加可选按钮
1)清空上次可选视图控件上的所有按钮
2)设置可选按钮的宽高,显示列数
3)计算水平间距,设置竖直间距
4)开始循环添加可选按钮
4.1)准备frame数据
4.2)利用frame数据生成可选按钮
4.3)添加到父控件
4.4)分别设置按钮的标准、高亮状态下的背景图
4.5)设置按钮的tag(大于0)
4.6) 注册点击事件

9.监听可选按钮的点击
1)查找第一个没有标题的答案按钮
【遍历答案视图的所有答案看是否存在没有标题的,返回这个按钮】
2)若找到,对这个按钮设置上可选按钮当前的标题
同时隐藏这个可选按钮,设置这个答案按钮的tag和可选的一样
3)判断答案是否满了
【遍历答案视图的所有答案看是否存在没有标题的,返回BOOL】
若满了,
3.1)取出答案,判断答案是否正确
用取出的答案和所有答案拼接出的答案比较
若正确
3.2)改分,变色,下一题
改分:
要考虑是加分还是减分
加分:直接用当前的+传来的 更新新分,返回改分成功
减分:要判断减掉后是否小于0
是则 弹框提示 返回 改分失败 否则 更新新分,返回改分成功

进入下一题之前,判断答对的是否是最后一道题

变色:
正确变蓝色,错误变红色

10.提示
1)先扣分,返回改分失败返回
2)否则,处理用户出错答案
2.1 找出错误的答案位置
2.1.1 获取标准答案数组A
2.1.1.1 获取标准答案,进行逐字拆分,返回数组
2.1.2 获取答案视图下的所有答案B
2.1.3 遍历A B 让AB对应位置元素比较 不同,则返回当前位置
2.2 判断是否找到错误的,没有则返回
2.3 否则 获取答案视图下的所有答案B
从错误位置遍历B 将错误位置以后的 全恢复到原位

2.4 再利用这个错误位置,在标准答案A中找到这个字
2.5 利用这个字找到可选按钮,让这个按钮上去
2.5.1 找可选按钮:遍历所有可选按钮 ,找到匹配的返回它

细节归纳
1.launchImage 如果缺少和部署设备尺寸一致的图片,则会导致运行出来的页面错乱
2.用父控件把子控件带到最上层
[self.view bringSubviewToFront:self.imageView];
3.当在一个方法里动态生成的一个控件,还会在其他方法里用,这时可以在控制器扩展这个控件的一个弱引用
就是定义个变量保存它。
4.给一个控件注册一个方法
[coverView addTarget:self action:@selector(small) forControlEvents:UIControlEventTouchUpInside];
5.定义一个弱引用,创建后要先赋值给弱引用,然后再设置对应的属性
6.移除控件
[self.coverView removeFromSuperview];
7.问题图片其实是个按钮
8.让控件北京颜色透明和让控件透明不一样,前者是设置背景颜色 为clear color 后者是设置透明度属性
9.在同一个位置动态生成的控件,下次在生成的时候要记得先清空。
[self.answerView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
10.修改控件tag
optionBtn.tag = i+1;
11.设置按钮的背景图片,要分状态设置,高亮或者标准状态
12.设置要延迟的代码
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 需要延迟的代码
[self nestQuestion:nil];
});
13.弹框
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@”提示” message:@”金币不够!” delegate:nil cancelButtonTitle:@”取消” otherButtonTitles:@”充值”, nil];
// 展示
[alertView show];

16.利用子控件的tag 在父控件里找子控件
UIButton optionBtn = (UIButton )[self.optionView viewWithTag:answerBtn.tag];

17// 让某个子控件显示最前面
[self.view bringSubviewToFront:self.iconBtn];

  1. 延迟执行方法
    // [self performSelector:@selector(nextQuestion) withObject:nil afterDelay:1];
    // [self nextQuestion];
0 0
原创粉丝点击