IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 知乎日报总结——第一周 -> 正文阅读

[移动开发]知乎日报总结——第一周


前言

这个月的任务是完成知乎日报,难度还是挺高的 要完成的部分有:首页各个内容,我的界面,我的收藏和消息中心

在这个周基本上完成了各个界面和首页轮播图和cell的添加


效果

首页:
在这里插入图片描述
我的:
在这里插入图片描述

遇到的问题

1.UIButton的添加出现一些奇怪的事

详情请戳:UIButton的类型

2.关于网络请求一直为空

我在controller里的网络请求成功了,但是在view里使用的时候,总是为空。
咨询了大佬后,大佬指出是因为先加载了view,然后在对controller进行的赋值。

我是使用的属性传值,把网络请求到的数据转换成字典类型,然后在controller里属性传值到view里面
这个是解决先创建view在网络请求导致的数据为空问题代码。


    [[Manager shareManger]makeData:^(HomeModel * _Nonnull ViewModel) {
        NSLog(@"%@", ViewModel.top_stories[4]);
        NSLog(@"%@", ViewModel.stories[4]);
        self.viewHome.homeDictionary = [ViewModel toDictionary];
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.viewHome CreatView];
        });
    } error:^(NSError * _Nonnull error) {
        NSLog(@"请求失败!");
    }];
    [self.view addSubview:self.viewHome];

3.轮播图

轮播图就不多说了,之前写过很多次了。
写的时候注意滑动时候的bug解决了就行。

4.图片的添加

由于这次使用的是网络上的图片,添加方法有些许不一样
这里是轮播图上的图片添加


        NSString* homeScrollImageName = self.homeDictionary[@"top_stories"][i][@"image"];
        NSURL *imageUrl = [NSURL URLWithString:homeScrollImageName];
        UIImage *homeScrollImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
        UIImageView* homeScrollImageView = [[UIImageView alloc] initWithImage:homeScrollImage];
        homeScrollImageView.frame = CGRectMake(WIDTH*i, 0, WIDTH, 400);
        [self.scrollView addSubview:homeScrollImageView];

5.首页左上角时间

要获取当前时间进行添加
由于直接获取得到的格式和所需格式不一样,必须重新想出一个方法来添加首页时间
我的方法比较笨, 是先获取时间,然后进行格式转换

NSDate *dateOne = [NSDate date];
    NSDateFormatter *forMatter = [[NSDateFormatter alloc] init];
    [forMatter setDateFormat:@"dd"];
    NSString *dateStr = [forMatter stringFromDate:dateOne];
    
    
    UILabel* labDateOne = [[UILabel alloc] init];
    labDateOne.frame = CGRectMake(20, 20, 60, 40);
    labDateOne.text = dateStr;
    [labDateOne setFont:[UIFont fontWithName:@"Helvetica-Bold" size:35]];
    [self addSubview:labDateOne];
    
    
    
    NSDate *date =[NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
     
    [formatter setDateFormat:@"MM"];
    NSInteger currentMonth=[[formatter stringFromDate:date]integerValue];
    
    UILabel* labDateTwo = [[UILabel alloc] init];
    labDateTwo.frame = CGRectMake(20, 50, 60, 40);
    labDateTwo.font = [UIFont systemFontOfSize:20];
    
    if (currentMonth == 10){
        NSString* Month = @"十月";
        labDateTwo.text = Month;
        
    } else if (currentMonth == 9){
        NSString* Month = @"九月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 8){
        NSString* Month = @"八月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 7){
        NSString* Month = @"七月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 6){
        NSString* Month = @"六月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 5){
        NSString* Month = @"五月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 4){
        NSString* Month = @"四月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 3){
        NSString* Month = @"三月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 2){
        NSString* Month = @"二月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 1){
        NSString* Month = @"一月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 11){
        NSString* Month = @"十一月";
        labDateTwo.text = Month;
        
    }else if (currentMonth == 12){
        NSString* Month = @"十二月";
        labDateTwo.text = Month;
        
    }
    
    [self addSubview:labDateTwo];

总结

这周写的内容比较少,一直卡在那个请求到的数据为空的问题上。下周赶进度。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:09:06  更:2022-10-31 12:10:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:33:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码