----------------------------------------------------------------------------- 受到挫折,写一些简单的练习,增加成就感

放大核心代码:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {

return self.testImageView;

}

- (void)initialize {

self.testScrollView.maximumZoomScale = 2.0;

self.testScrollView.minimumZoomScale = 0.5;

self.testScrollView.delegate = self;

}

// scrollView+图片缩放,图片要比scrollView大,才能滚动

// 设置代理,实现viewForZoomingInScrollView方法,告知是哪个view可以缩放

// 设置缩放比例,设置代理

// 一样大应该也能缩放,就是不能滚动缩放后应该可以滚动

// 目标:imgView跟scrollView大小相同,设置imgView四边约束跟scrollView距离为0,宽高都跟scrollView相同

//      设置图片放大倍数,搞定!

---------------------------------------------------------------------------

// push-pop   present-dismis

// 跟李亚军要的代码,

- (void)dismiss { // 点完成

NSArray *controllerArray = self.navigationController.viewControllers;

for (UIViewController *vc in controllerArray) {

if ([vc isKindOfClass:[MAMyAppointmentsController class]]) {

[self.navigationController popToViewController:vc animated:YES];

return;

}

}

for (UIViewController *vc in controllerArray) {

if ([vc isKindOfClass:[MAJudgeDoctorViewController class]]) {

[vc dismissViewControllerAnimated:YES completion:nil]; // 如果是评价页,dismis

}

}

self.tabBarController.selectedIndex = 0;

[self.navigationController popToRootViewControllerAnimated:YES];

}

------------------------------------------------------------------------

打印结构体

NSStringFromCGRect(self.view.frame)

-------------------------------------------------

切换地区,选择西藏,应该跳到上海,但实际还是显示西藏,

有请求上海的接口,但是没保存数据,要刷新?

切换地区,再返回就有了

-------------------------------------------------

用完全自定义的返回按钮拦截返回按钮点击事件

-------------------------------------------------

mjExtenion可以将plist直接转成模型

直接用模型调方法,不是用NSArray调,要用自定义类去调,不然用自定义类的点语法会崩溃

-------------------------------------------------

切换分支,点checkOut

-------------------------------------------------

对比版本"

Cmd+shift+alt + enter

查找快捷键

----------------------------------------------------------------------------------------------------

提交的代码修改的哪个类

----------------------------------------------------------------------------------------------------

生成随机色

subView.backgroundColor = [UIColor colorWithRed:(CGFloat)random()/(CGFloat)RAND_MAX green:(CGFloat)random()/(CGFloat)RAND_MAX blue:(CGFloat)random()/(CGFloat)RAND_MAX alpha:1];

----------------------------------------------------------------------------------------------------

忘了写addSubView显示不出来

控制器-view-collectionView

view没有加collectionview, 拖线,没有了

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

发的通知一个是userInfo,一个是object

死活接不到通知,原来是

发的时候用userInfo,接的时候也得用notice点上uresinfo

发的时候用object接的时候也得用 notice点上object

怎么解决这个bug的打断点,发现通知接受到了,但是这个判断条件不走,一开始是self.serviceProjectKey isEqualToStr   判断一直是free免费咨询,猜测应该在创建cell的时候就绑定监听器,于是在collectionView的类里面监听了,而且监听对象是cell,

[[NSNotificationCenter defaultCenter]addObserver:cell selector:@selector(setRedDotStatus:) name:@"redDotStatus" object:nil];

以前没有这样写过通知,一般监听都是self,其实也可以是其他对象,第一次创建出来的对象

而且这个监听的方法可以全局相应,

回到刚才的问题,判断条件不对,通过打断点,  控制台po notice.usreinfo是nil,再 po notic.object是有值的!!于是用notice.object 就成功判断了

看帖子写的通知基本用法,作者用的userinfo传的参数,我却是用的object,所以接收也得用dict

通知观察者可以不是当前的类, 通知的回调方法可以不写在当前控制器

[[NSNotificationCenter defaultCenter]postNotificationName:@"redDotStatus" object:nil userInfo:dict];

-(void)setRedDotStatus:(NSNotification *)notice{ // 监听到了通知,但是判断条件不对

//    NSDictionary *dict = notice.userInfo.copy;

if ([[notice.userInfo valueForKey:@"drug"] isEqualToString:@"1"] && [self.serviceProjectKey isEqualToString:@"useDrug"]) {

self.redDot.hidden = NO;

[[NSNotificationCenter defaultCenter]postNotificationName:@"redDotStatus" object:dict];

-(void)setRedDotStatus:(NSNotification *)notice{ // 监听到了通知,但是判断条件不对

//    NSDictionary *dict = notice.userInfo.copy;

if ([[notice.object valueForKey:@"drug"] isEqualToString:@"1"] && [self.serviceProjectKey isEqualToString:@"useDrug"]) {

刚才纠结两个问题,如果通知写在cell里面,cell的标记只能拿到第一个,无法进行判断// 如果通知写在collectionView里面,通知回掉的方法怎么拿到cell呢?后来阴差阳错发现把通知观察写在viwe里面,相应的方法写在cell里面就可以了,观察者和相应的方法可以在不同的文件中,观察者cell是在view里面初始化的

观察到通知响应的方法写在cell的类里面

带block的通知?  使用带block的通知直接解决了上面的问题,

如何销毁呢?两个控制器都要销毁么?

-------------------------------------------------------------------------------------------------------------------------------------

字典@{key: value,key :value}  KVC  前面是key,后面是value

两个通知可以同名么????????

-------------------------------------------------------------------------------------------------------------------------------------

红点经验

找到红点控件,当前类中搜索,看在哪里设置隐藏和显示的,(4处)

目标:观察红点显示规律,跟tabBar一起显示的,明确目标,跟tabBar上的红点一起显示

发现是从服务器请求下来的数据设置的,打断点,看服务器返回的是啥字段,啥内容,看原来的代码是如何判断的

发现1是显示红点,0是隐藏红点,从服务器拿到这个状态马上设置红点的显示和隐藏

我就在这四个地方(其实是三个地方,不算属性),发三个通知,请求失败,和未登录状态是同一个通知名字,直接设置红点隐藏.请求成功发送成功请求的通知,

在cell里面监听两个通知,取出相应的字段进行判断就搞定啦!!!!!  我最牛B 哈哈哈哈

红点还是用模型设置cell的显示和隐藏,尽量不用通知

用同通知好么?原来拖线直接设置,销毁?

如何检查内存泄露,控制器被销毁了,内存没有被释放

用模型设置cell原点,初始化就创建好控件,然后根据模型控制显示和隐藏。

reloaddata会错位,因为缓存池里面是无序的,

reloaddata会闪,谷歌,给答案,调用另外一个刷新方法。

红点请求完了马上reloaddata.使用点语法获取collectionview,

请求是同步的

// 遍历删除子控件

/*

CGRect entranceViewFrame = CGRectMake(0, 10, SCREEN_W, columCount * 78 + 15);

EntranceContainerView *view = [[EntranceContainerView alloc]initWithFrame:entranceViewFrame]; // self.entranceView.bounds

self.entranceView.frame = entranceViewFrame;

self.bigEntranceViewHeight.constant = 110 + entranceViewFrame.size.height;

view.entranceModelArray = self.entranceItemModelArray;

[self.entranceView addSubview:view];

for (UIView *view in self.entranceView.subviews) {

if (![view isKindOfClass:[EntranceContainerView class]]) {

[view removeFromSuperview];

view.hidden = YES;

}

}*/

---------

请求完毕reloadData

点语法

报错原因是用了点语法,但是只写了@class,应该用inport .h

[weakObject.entranceContainerView.entranceCollectionView reloadData]   // 报错下面的

/Users/hdf/hdfPatient/haodf/PostTreament/Service/Controller/ServiceViewController.m:1084:10: Receiver type 'EntranceCollectionView' for instance message is a forward declaration

---------------------------------------------------------------------------------------------------------

重构,前面判断。如果返回数据少,再请求一次,只有一个参数不同,再请求之前判断数组元素长度,如果是零,用默认城市请求,否则直接请求

选择城市后返回,数组长度为零,一定要用默认请求了。

定位城市医院为0,能切换到上海么?手动设置坐标西藏。

如果第三方看不懂,先会用

扣扣聊天如何做自动布局

拉伸图片的方法

光标在右边一点

通知机制模拟??

键盘通知

日期格式设置,发送消息,滚动tableview,发送消息的frame模型??自动回复?聊天文字背景图??

产品要求隐藏按钮,再将约束设置为0即可

xib创建自定义cell firstObject lastobject?

用xib创建cell,init方法设置基本属性,set方法设置详细内容

封装创建cell的方法l

footview无法修改y和宽度,也用单独的一个类管理

…………………………………………………………

控制器,容器view.collectionview,cell如何设置代理?创建的时候就设置代理?

dispatch after延迟执行

reloadrowatindexpath,如果行数发生变化会崩溃。

行数变化,用insertrowatindexpath不会崩溃

滚动到相应的位置。scrolltorowatindexpath

封装创建xib的类方法

mjextension也是模型工厂方法里面整的

initwithstyle  tableviewcell

initwithframe collectionviewcell???

label不设置字体大小,有默认大小

封装枚举类型,set方法里面设置view颜色,itemsize,看苹果怎么写枚举的

如果不设置枚举,默认来个间距为零

工作时候少聊天。任务完成的好,心情好,都不长痘了。

王宇笔记做的好,推荐玉玉看course

如何切换分支。

基本养成了回家敲代码的习惯,累了就刷牙,洗脸,回来再敲

早上地铁上看笔记,做计划

如何创建分支

label  sizetofit. 计算文字尺寸,???

只读的用下划线访问???????

hightforrow无法获取自定义cell高度?先调用,然后调用cellforrow?

任务,用多级代理,设置size.间距,左右,中间,如果不设,默认为零

设置collectionview的分割线

关键是找出规律

----

闪退,mas约束加错了,

如果定位失败,显示从服务端获取的地址,下面的内容也是这个地址的内容。

切换地区,如果定位失败,显示服务端获取的地址,下面的内容也是这个地址的内容

切换地区后如果没有内容,显示从服务端获取的地址,对应的内容

这周表现不错,加油吧

hdf第二周,每天加班,周末加班,周日健身的更多相关文章

  1. 201521123110第二周Java学习总结

    1.本章学习总结 本周的Java学习相对前一周更进了一步,初步学习了Java简单的输入和输出,String类的对象创建后不能修改,它是不可变的,在Java中浮点型默认是double型与C中的int型不 ...

  2. 第二周学习总结-Java

    2018年7月22日 暑假第二周马上就要结束了,这一周我继续学习了java. 本周学到了一些Java的修饰词,比如static.private.public等,这些修饰词用法与c++类似,很容易掌握. ...

  3. 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...

  4. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

  5. 20165225 《Java程序设计》第二周学习总结

    20165225<Java程序设计>第二周学习总结 1.视频与课本中的学习: ##### 1.标识符: 字母.下划线.美元符号.数字(不能是true,false,null还有关键字). # ...

  6. 20155312 2006-2007-2 《Java程序设计》第二周学习总结

    20155312 2006-2007-2 <Java程序设计>第二周学习总结 课堂内容总结 git:版本控制 生活中的容灾备份 归纳思维.实验思维.计算思维 计算机:实现自动化 学会使用快 ...

  7. 20172302『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

    一.结对对象 姓名:周亚杰 学号:20172302 担任角色:驾驶员(周亚杰) 伙伴第二周博客地址 二.本周内容 (一)继续编写上周未完成代码 1.本周继续编写代码,使代码支持分数类计算 2.相关过程 ...

  8. 2016-2017-2 《Java程序设计》第二周学习总结

    20155319 2016-2017-2 <Java程序设计>第二周学习总结 课堂学习内容 git:版本控制 java -d bin(当地文件夹) src/Hello.java把生成的.c ...

  9. 红帽学习笔记[RHCSA] 第二周

    目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...

随机推荐

  1. Java Hour 53 HQL

    上回写到一个一个最基本的HQL 查询语句写出来都没有什么自信,这一课时就补上HQL 相关的知识. 这种东西笔者最喜欢的官方的原版说明文档了. http://docs.jboss.org/hiberna ...

  2. 我对java反射机制的理解

    我们平常怎么用一个使用类,怎么使用类的方法?其实就是创建一个对象,并且通过这个对象调用这个方法.不过这有一个问题,就是这个对象的载体就和这个对象产生了耦合,怎么降低两者间的耦合呢?java的反射机制就 ...

  3. css实现三角形图标

    css边框和相框构造是一样的,看下面这代css代码: <div style="border-color: red blue black green;border-style: soli ...

  4. aac格式解析

    AAC格式有以下两种: ADIF:Audio Data Interchange Format 音频数据交换格式.这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即 ...

  5. java中异步多线程超时导致的服务异常

    在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线 ...

  6. BZOJ4032 : [HEOI2015]最短不公共子串

    第一问: 对B串建立SAM,暴力枚举A的每个子串,在SAM上走,若失配则可行. 第二问: 设g[i][j]表示B串的第i个字符之后最早出现的字符j的位置,暴力枚举A的每个子串,按照g贪心地走,若失配则 ...

  7. BZOJ3251 : 树上三角形

    BZOJ AC1000题纪念~~~ 将x到y路径上的点权从小到大排序 如果不存在b[i]使得b[i]+b[i+1]>b[i+2]则无解 此时b数列增长速度快于斐波那契数列,当达到50项时就会超过 ...

  8. css expression

    概述 css expression(css表达式)又称Dynamic properties(动态属性)是早期微软DHTML的产物,以其可以在Css中定义表达式(公式)来达到建立元素间属性之间的联系等作 ...

  9. CSS3选择器(三)之伪类选择器

    伪类选择器对于大家来说最熟悉的莫过于:link,:focus,:hover之类的了,因为这些在平时中是常用到的伪类选择器,那么先和大家一起简单总 结一下CSS中常用的伪类选择器的使用方法,最后把重心放 ...

  10. [转载]CAsyncSocket及CSocket注解

    MFC疑难注解:CAsyncSocket及CSocket MFC对SOCKET编程的支持其实是很充分的,然而其文档是语焉不详的.以至于大多数用VC编写的功能稍复杂的网络程序,还是使用API的.故CAs ...