【iOS】—— 仿写知乎日报第二周总结

知乎日报第二周完成情况:

完成了主界面cell点进去后的左右轮播效果,正在写评论界面请添加图片描述

遇到的问题:

1.scrollView的bug

scrollView遇到了很多bug,最直观的bug就是在左右滑动时,滚动视图可以斜着滑动,解决这个问题就要把滚动视图的contentSize的CGSize第二个参数设为0即可解决这个问题。

//设置ScrollView属性
_scrollView.contentSize = CGSizeMake(5 * SIZE_WIDTH, 0);

上周完成了上面的5个有固定数量的滚动视图,这周在写下面的时候遇到的问题就是让它有无限刷新的功能,在此时加载完成的WKWebView继续刷的时候应该是可以继续网络请求获取数据的,这时候就需要在最后一页滑动时再次网络请求,获取最新数据并且显示出来,我最初把滚动视图宽度设置成了现有的数据个数,在最后一次滑动时,会卡顿一下,直到网络请求成功后才能滚动过去,为了解决这个bug,要把滚动视图的初始宽度设置比数据多一份宽度,滑动时网络请求,不会出现视觉上的卡顿。

//ScrollView宽度设置
_scrollView.contentSize = CGSizeMake(_allArray.count * 6 * SIZE_WIDTH + SIZE_WIDTH, 0);
//多余滑动刷新函数
- (void)scrollViewNextReload {
    
    _scrollView.contentSize = CGSizeMake(_allArray.count * 6 * SIZE_WIDTH + SIZE_WIDTH, 0);
    for (int i = 0; i < 6; i++) {
        _wkWebView = [[WKWebView alloc] init];
        _wkWebView.tag = 1011;
        NSURL *url = [NSURL URLWithString:_allArray[_allArray.count - 1][@"stories"][i][@"url"]];
        _wkWebView.frame = CGRectMake((_allArray.count - 1) * SIZE_WIDTH * 6 + i * SIZE_WIDTH, 0, SIZE_WIDTH, SIZE_HEIGHT * 0.91 - 40);
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [_wkWebView loadRequest:request];
        [self.scrollView addSubview: _wkWebView];
    }
    _requestFlag = 0;
}

2.主界面进入WKWebView上周遗留bug

在上周时候发现了一个问题,从主界面点击进入WKWebView界面的时候,可能会字典为nil或者显示不到数据,因为只是概率性事件,一直以为是网络问题,最后发现好像是网络请求数据问题,因为我在app启动时,已经显示了两天的数据,最顶部的最新消息和昨天的消息,因为两个数据用的是两个不同的API,所以请求的时候并不分先后顺序,在主界面显示前后顺序并无关系,但是点击进入两个数据相反就会导致ScrollView无数据,下面的点击进去是前面的数据,因此我在传值的时候做了判断,如果顺序错误就在传值前先交换再传值即可。

    //两个函数运行顺序是不一定的
    [self firstNetworkRequest];
    [self beforeNetworkRequest];
//交换第一和第二下标的值
    if (_allArray[0][@"top_stories"] == nil) {
        NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
        dictionary = _allArray[0];
        _allArray[0] = _allArray[1];
        _allArray[1] = dictionary;
    }

3.评论界面刚开始写,遇到瓶颈

这周最后几天开始写评论界面,首先是评论文字的行数和高度不知道如何控制,后面在学长们的博客中看到Masonry不给文字设置高度,它就可以自适应高度,但是cell的高度如何判断我还在构思中,现在完成了长短评论的自定义cell。

    [_mainLabel mas_makeConstraints:^(MASConstraintMaker* make) {
        make.bottom.equalTo(self).offset(-20);
        make.top.equalTo(self).offset(15);
        make.left.equalTo(self).offset(30 + (SIZE_WIDTH * 0.1));
        make.right.equalTo(self).offset(-20);
    }];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值