知乎日报--第二周总结

知乎日报--第二周总结

这周主要把第一周没有完成的东西完成了,然后写了刷新但还是存在一些乱七八糟的问题需要解决😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭

1.上周最上面的时间没有实现这周实现了。
获取当前时间并把时间转为字符串

   NSDate *date = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // HH是24进制,hh是12进制
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSString *string = [formatter stringFromDate:date];
    NSLog(@"%@", string);

注:使用日期说明符来设置日期格式
EEEE:“星期”的全名(比如Monday)。如需缩写,指定1-3个字符(如E,EE,EEE代表Mon)。
MMMM:“月份”的全名(比如October)。如需缩写,指定1-3个字符(如M,MM,MMM代表Oct)。
dd:某月的第几天(例如,09或15) yyyy:四位字符串表示“年”(例如2015) HH:两位字符串表示“小时”(例如08或19)
mm:两位字符串表示“分钟”(例如05或54)
ss:两位字符串表示“秒”
zzz:三位字符串表示“时区”(例如GMT)。缩写Z
GGG:公元前BC或公元后AD

在获取需要的部分时间时用到了字符串的截取

//从第八个字符开始,截取长度为2的字符串
    NSString* dayString = [string substringWithRange:NSMakeRange(8, 2)];
    NSString* monthString = [string substringWithRange:NSMakeRange(5, 2)];

//补充
//截取到第n为(第n位不算在内)
NSString *str3 = [str substringToIndex:2];
//从第n为开始直到最后(包含第n位)
NSString *str4 = [str substringFromIndex:11];

2.刷新时需要对过去时间的数据进行网络请求,那么什么时候进行网络请求呢?向下拖动时进行网络请求,那么通过什么判断呢?
这里我通过使用当前显示屏幕高度跟整个屏幕的高度进行比较,如果当前显示的屏幕高度小于设定的刷新时的屏幕显示高度,通过协议传值(其他传值也可以)使viewController进行刷新,同时获取网络请求的数据。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.tag == 102) {
     
        CGFloat height = scrollView.frame.size.height;
        CGFloat contentOffsetY = scrollView.contentOffset.y;
        CGFloat bottomOffset = scrollView.contentSize.height - contentOffsetY; //计算屏幕差
        if (bottomOffset <= height*0.7) {
               [_delegate refreshData];//??
        }
    }
}

这里遇到的问题有:这个代理对象调用协议函数的位置,这里是控制对过去的数据进行网络请求的,它的位置放到下面这里时不响应,没有进行网络请求,设置断点发现它不走这一步,说明它的高度设置还存在问题。

3.刷新还存在问题,因为返回行数的设置有问题,之前没有考虑到每组的行数不一定都是六行,所以出现了刷新部分之后就不再继续刷新的问题了

4.在写cell点进去的页面时,我最开始想的是使用tableview上cell的点击事件使用didSelectRowAtIndexPath方法,在这个方法中进行页面跳转,跳转则需要获取当前视图控制器的导航栏,所以要在controller中进行跳转,一开始是通过把controller作为tableView的delegate,但是代理只能有一个,只把这个方法写在controller中就导致不能响应。后来还是选择使用传值,来控制它的跳转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值