第一周我完成了一个界面的部分显示部分
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f92d68eed134d1d90c6b746691ee6bf.png)
遇到的问题有:
1.最开始没有在导航栏上添加view,而是使用了 self.navigationController.view的导航栏的属性,这样就导致添加的知乎日报等lable在进入另一个页面的时候仍然显示。所以后来还是选择在导航栏上添加view,再在view上添加这些东西,再隐藏导航栏。
2.在设置圆角头像的时候,出现了设置出来是奇奇怪怪的多边形的问题,是图片大小的问题。然后改好以后由于我在设置拐角半径时用的是frame.width/2,但由于使用masonry在后面,所以这里的frame为0,所以没有变圆。
3.在使用masonry时出现了代码崩的情况,masonry设置位置应该写在添加视图的后面。
4.在使用网络请求来的下面的cell里的图片时,这里的images是数组类型,但我把它赋给了字符型,所以代码崩了,在后面加上objectAtIndex:0就好了。
5.因为cell要是动态的所以在赋值的时候,要注意数组的大小和行数,我一开始设置了十行,但是实际上网络请求来的数字元素只有六个,就导致程序崩掉了,把行数改成六个就好了。
学到的新东西:
一、线程问题
dispatch_async(dispatch_get_main_queue(), ^{
self.firstView.firstDictionary = self.firstDictionary;
[self UIReload];//刷新
});
在使用网络请求请求数据时,因为使用的是MVC模式,导致在请求到的数据没有返回的时候程序就已经开始了UI布局,导致UI中有需要用到获取到数据的地方程序崩溃,这里我将UI布局最终写在网络请求的Block回调中,解决这个问题,但是因为线程原因,它没有回到主线程再进行UI布局又导致程序崩溃,这时候需要将程序回到主线程然后再进行UI的布局。
网络请求的数据请求到了但传到tableview时发现为空,进行刷新后传过去的值就有了。
二、SDWebImage加载图片
[imageView sd_setImageWithURL:[NSURL URLWithString:[firstStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]]];
[firstCell.firstImageView sd_setImageWithURL:[NSURL URLWithString:secondStr]];
图片和文字的网络请求不同,文字请求来可以直接进行赋值,图片请求到的是一个网址,直接赋值的话检测不到东西,这时候就要从cocoapods里导入新的库SDWebImage,导入之后使用这个方法(这两个方法任选一个)即可。