假期 代码 真香

这学期天天早起的日子终于结束了 回家想睡多久就睡多久是真的爽,但是为啥睡眠时间过长我也会愧疚......

距离正式进入学习状态刚好一周啦,说起在家敲代码,以前根本想都不敢想自己会在没人监督的情况下坚持下来,但从这一周的情况来看,表现还好哈哈哈

佛系生活

延用暑假留校时的时间表,早上看数电,下午两点半开始敲项目,吃饭,晚上七点左右继续,有的时候觉得太枯燥了就刷剧啊
看着自己的代码水平以肉眼可见的程度提高,心里还是很开心的,但是万恶的git啊,昨晚和康大佬捣鼓了一晚上的git还是没能完整的走一遍合作开发的流程......
说到项目,很开心可以自己构思并实现这个学习英语的软件,大家讨论了很久,修正了很多地方,在我看来已经具备了成为一款与众不同的学习英语软件的特质了哈哈哈 希望里面的各个具体功能无论是安卓还是iOS端大家都能很好的实现,并且界面做的漂亮些嗷

 

一段很喜欢的话

如果你喜欢一个人,不是下课给人家买买水,不是短信发来发去,也不是周末一起出来唱唱歌聊聊天吃吃饭,而是做一个出色的人。以后的以后,可能还有别的人出现,你要做的,就是把别人比下去,你要变得更优秀,要比其他人都优秀。

加油

 

总结

自己太懒每次都是用总结的文档来发周报,导致回顾的时候不太好找 所以还是放在下面吧,方便在csdn上随时看   
1.我们都知道需要在AppDelegate中设置根视图:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    self.window.rootViewController=[[searchTableViewController alloc]initWithStyle:UITableViewStyleGrouped];
    return YES;
}

那么如果一个界面有多个Controller的情况下该怎么办?设置根视图的时候是先把这些controller放到一个数组中吗?然后设置这个viewCOntrollers的数组为根视图???
2.搜索栏的实现:UISearchController
3.使用UISearchController时可能会出现的问题
4.UISearchController中的initWithSearchResultsController方法意为创建一个搜索结果的展示界面controller
5.回顾一下:UITableViewCell初始化有三种方式: 自定义cell,不用xib,自定义cell,用xib,
不自定义cell:dequeueReusableCellWithIdentifier
6.iOS中NSPredicate中通配符:> < >= <= == LIKE CONTAINS BEGINSWITH ENDSWITH 的简单学习
7.先码住:运用UISearchBar搜索得到的词条进行跳转界面时可能会遇到的问题
8.iOS开发中的各种翻页动画
9.当搜索框激活时, 是否隐藏导航条(会出现动画)

    _searchController.hidesNavigationBarDuringPresentation = YES;

10.删除搜索框的灰色背景的方法:这其实是一个视图:UISearchBarBackground 所以只要删去这个视图就好了
思路就是遍历整个searchBar的子视图找到该视图,然后通过方法移除,也可以将其透明度变为0

for (UIView * subView in self.searchController.searchBar.subviews) {
        for (UIView * grandView in subView.subviews) {
            if ([grandView isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
                grandView.alpha = 0.0f;
            } else if ([grandView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
                NSLog(@"Keep textfiedld bkg color");
            } else {
                grandView.alpha = 0.0f;
            }
        }
    }

11.iOS好的代码风格
挑几个重点:
(1).if判断里面的条件要提取出来
建议写法

BOOL isTrue = a > b;
if(isTrue) {
}

不建议写法

if(a > b){
}

(2).解决类的头文件互引用方法:

用关键字:@class 类名。

关键字说明:在编译时,告诉编译器有一个类叫 “类名”。

用法:在两个类A,B的声明中,A.h文件中换成@class B,并A.m文件中导入B.h;也可在B.h文件中换成@class A,并在B.m文件中导入A.h,只要不形成 无限循环的拷呗状态 即可。

(3).pragma mark的使用
对于属性的不同作用 比如设置颜色的 设置字体的 设置其他样式 的可以进行分组
对于方法的作用分类 比如添加功能 删除功能的
对于其他的代理方法 Get Set方法 Init初始化方法
建议的写法

#pragma mark - Life Cycle
#pragma mark - DataSource
#pragma mark - Delegate
#pragma mark - Request
#pragma mark - Setter
#pragma mark - Getter
#pragma mark - Private

(4).数组和字典的元素垂直写
建议的写法

NSArray *array = @[
                    @"a",
                    @"b",
                    @"b"
                    ];
NSDictionary *dictionary = @{
                              @"a":@"",
                              @"b":@"",
                              @"c":@""
                            };

不建议写法

NSArray *array = @[@"a",@"b",@"b"];
NSDictionary *dictionary = @{@"a":@"",@"b":@"",@"c":@""};

(5).数组和字典最好指定元素的类型
建议写法

NSArray<NSString *> *names = [NSArray array];

不建议写法

NSArray *names = [NSArray array];

12.在给navigationController.navigationBar设置背景图片时发现了一个奇怪现象:
在使用该方法设置背景图片时:

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"2.jpeg"]];

会出现模糊效果,看图层,发现在UIImageView图层上面还有一个_UIVisualEffectSubview图层,想要实现正常效果还需要把该图层移除
而使用该方法时:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"2.jpeg"] forBarMetrics:UIBarMetricsDefault];

发现_UIVisualEffectSubview图层已经被系统自动移除。
那么_UIVisualEffectSubview又是什么呢?
她是一款特殊滤镜效果的类,可以为视图添加特殊毛玻璃效果
13.毛玻璃效果导航栏到底需要不需要????
14.记录一个问题:在scrollView上进行Masonory布局时,这样写:

[cardImageView1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.scrollView.mas_left).offset(90);
        make.right.mas_equalTo(self.scrollView.mas_right).offset(-90);
        make.top.mas_equalTo(self.scrollView.mas_top).offset(100);
        make.height.mas_equalTo(200);
    }];

这个imageView1不会显示出来,而通过self.view进行布局,则能显示出来该视图:

[cardMainImageView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.view.mas_left).offset(90);
        make.right.mas_equalTo(self.view.mas_right).offset(-90);
        make.top.mas_equalTo(self.view.mas_top).offset(100);
        make.height.mas_equalTo(200);
    }];

原因:原因简述:UIScrollView的leading/trailing/top/bottom是相对于自己的ContentSize而不是Bounds来确定的。而ContentSize又是根据子视图决定的。
15.Masonry适配——UIScrollView的设置
重点就是:UISCrollView在使用时,如果作为父视图包含多个子视图时,我们需要设置它的contentSize的大小,否则无法进行滚动显示。使用frame进行设置时,只需要令xxxScrollView.contentSize = CGSizeMake(width,height)即可,且不管是水平方向,还是垂直方向都方便设置。
而当使用masonry时,应该怎么进行设置呢?因为使用masonry时,无法通过CGSizeMake进行设置它的contentSize,所以需要通过一个过渡视图进行处理。即scrollView作为父视图,添加子视图,即过渡视图A,然后再将其他真正需要添加到scrollView上的子视图a、b、c等添加到过渡视图A中,然后再将a、b、c等中的最后一个子视图的右边距,或底边距设置成过渡视图A的右边距,或底边距,以此来设置scrollView的contentSize在水平方向,或垂直方向的大小。


自己写的一个相关demo
有一个问题:
在使用Masonry布局时,将UIView添加到UIScrollView后布局UIView:

[container mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(scrollView);
        //下面这句话至关重要 为什么不加上就显示不出来 container这个UIView了???
        make.width.equalTo(scrollView);
    }];

如果没有

make.width.equalTo(scrollView);

这句话,那么这个container(UIView)就不会出现在图层中? 为什么?
16.在用Masonry对一个控件进行重复布局时 如果不涉及高度的改变 只改变位置 那么可以用mas_makeConstraints
如果涉及高度的改变 就得用 mas_remakeConstraints 进行重布局
17.疑惑:在使用scrollView滚动视图时,用Masonry布局某一个控件,滑动scrollView时该控件不随之滑动
18.记录一个找了我一下午的奇怪问题:
当实现这个功能: 向下滑动界面后 搜索栏从导航栏正下方移动到导航栏上,在没有滑动时,点击搜索栏,再点击取消按钮,搜索栏就会消失,但打开图层并打印,可以证明该搜索栏存在。
然后发现错在哪了 我的搜索栏是放在滚动视图上的,当点击搜索栏想要输入文字时因为

self.searchController.hidesNavigationBarDuringPresentation = YES;

这个方法会让搜索栏上移,从而执行scrollViewDidScroll方法 但打断点后为什么该方法要执行两次就不太清楚了
里面这句话:

self.mainTableView.tableHeaderView = self.searchController.searchBar;

没有加判定

if (!self.mainTableView.tableHeaderView)

加了判定之后就不会再消失了
有些搞不懂这个判定为什么加了就会好了?
在没加判定之前,看图层,searchBar始终只有一层,没有出现过重覆盖,这说明加不加判定都无所谓啊
为什么不加就会出现这个问题???

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

和喵总有些争吵,希望准备了半年的生日礼物能让她开心起来 耶

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值