天气预报app——阶段总结

27 篇文章 0 订阅
15 篇文章 0 订阅

整体进度

目前主页tableview大体框架初步搭建,顶部headerview固定,cell中的header也固定,cell中嵌套tableview完成创建并成功拉取数据。

遇到的问题

1.多section多headerview会导致下面的headerview将第一个headerview顶出
在制作主页tableview的时候,设置了两个分组(section),分别都设置了header,想要的到第一个header吸顶,第二个吸在第一个下面的效果,但是未能解决,于是采用外部固定headerview的形式,将tableview整体放在外部固定的headerview的下面,在tableview里面设置第二个分组的headerview这样就可以得到我们想要的效果了。
2.在tableviewcell里嵌套tableview
创建UITableviewcell类,添加tableview代理方法,在.m文件中实现这两个方法对cell类进行初始化,你想要添加的东西都可以写在里面初始化。

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 240)];
        self.tableView.dataSource = self;
        self.tableView.delegate = self;
        [self.tableView registerClass:[WeatherTableViewCell class] forCellReuseIdentifier:@"Cell"];
        self.tableView.backgroundColor = [UIColor clearColor];
        [self addSubview: self.tableView];
    }
    //self.arr = @[@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六"];
    return self;
}
- (void)layoutSubviews {
    [super layoutSubviews] ;
    self.tableView.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 240);
}

之后就是代理方法。
在你要使用这个cell的地方需要注册,类似这样⬇️

[self.tableView registerClass:[FutureTableViewCell class] forCellReuseIdentifier:@"myCell2"];

3.由于我代码不规范,导致没有正确使用cell的复用方法
我在tableview里面初始化了一个cell,然后在每一个cell里面又定义了一个cell,但是没有return,导致嵌套tableview的时候没有完成操作,嵌套的tableview就被释放了。
在这里插入图片描述
4.动态数组的使用
本来我是想要请求天气数据,然后将他们的每一个字符串NSString数据存入到NSMutableArray动态数组中,但由于没有初始化给出空间,以及初始化cell的时候cell个数和数据个数不匹配导致数组越界。
在这里插入图片描述
5.block数据回调
个人理解,因为block每次都是在其他程序执行完才去执行,所以如果你想得到block里面请求的数据,你就需要在定义block方法的后面加上completion,类似于这样⬇️
在这里插入图片描述
然后在block方法里面的到了你想要的数据之后通过这样的代码将它回掉出来。

completion(self.thisWeather);

然后就可以在你想要得到数据的地方,把数据带出来并存起来。
在这里插入图片描述
但是要注意,调用你在block里得到的数据也要在block内完成,因为他毕竟是最后执行的,你只需要在他执行之后去调用他就可以了,包括刷新页面。像这样⬇️
在这里插入图片描述
这样子你就可以在,headerView和tableView里面使用block里面得到的数据啦~

luhh~⛽️?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值