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 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【iOS】知乎日报第一周总结 -> 正文阅读

[移动开发]【iOS】知乎日报第一周总结

第一周因为自身原因原因浪费了几天时间,没有达到要求进度,下周尽量多写追上进度

主界面

请添加图片描述

网络请求

由于在Model中的数据类型写错了导致申请数据全空,必须要把所有的需要写的类型都写对才能保证不出差错,能请求到数据,

scrollView

需要把请求的图片用 sd_setImageWithURL: placeholderImage:options: 这个方法来设置占位图以及请求到的图片,调用的对象是UIImageView类的对象(需要导入#import "UIImageView+WebCache.h")

上图还差一个UIPageControl没有写上去,下周完善。

关于线程上的差错

把所有的请求都写好了,但是还是不能把得到的数据给view赋值。
这是因为所写的view在网络请求完成前就加载好了,所以不能得到数据了。

解决方法

经过腾组帮助,用了一段关于线程的代码

	 mainView.dictionary = [mainViewNowModel toDictionary];
	 dispatch_async(dispatch_get_main_queue(), ^{
	            [mainView Init];
	        });

这样可以保证我得到mainView之前就一定已经得到了数据字典。

但是这样又遗留下来一个新问题,我们设置占位图的意义就不在了,本来应该是网络请求得到结果之前要显示占位图的,现在成了请求得到结果之前什么都显示不出来。。。

希望下周可以解决这个问题,写在第二周总结上。

左上角时间(NSDate)

使用日期说明符来设置日期格式:
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

//日期
- (void) LayoutDate {
    //创建NSDate
    NSDate* date = [NSDate date];
    NSDateFormatter* formatterMonth = [[NSDateFormatter alloc]init];
    NSDateFormatter* formatterDay = [[NSDateFormatter alloc]init];
    
    [formatterMonth setDateFormat:@"MM"];
    [formatterDay setDateFormat:@"dd"];
    
    NSString* MonthString = [formatterMonth stringFromDate:date];
    NSString* DayString = [formatterDay stringFromDate:date];
    

    
    //通过formatterMonth、formatterDay获取NSString并显示到label
    
    //labelDay
    UILabel* labelDay = [[UILabel alloc]initWithFrame:CGRectMake(Width*0.05, Height*0.04, Width*0.1, Height*0.045)];
    
    labelDay.text = DayString;
    
    labelDay.font = [UIFont systemFontOfSize:23];
    
    labelDay.textAlignment = NSTextAlignmentCenter;
    
    
    [self addSubview:labelDay];
    //labelMonth
    NSArray* monthArray = [NSArray arrayWithObjects:@"一月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月", @"九月", @"十月", @"十一月", @"十二月", nil];
    
    UILabel* labelMonth = [[UILabel alloc]initWithFrame:CGRectMake(Width*0.05, Height*0.07, Width*0.1, Height*0.045)];
    
    NSString* ChineseMonth = [NSString stringWithFormat:@"%@", monthArray[[MonthString integerValue] - 1] ];
    
    labelMonth.text = ChineseMonth;
    
    labelMonth.font = [UIFont systemFontOfSize:13];
    
    labelMonth.textAlignment = NSTextAlignmentCenter;
    
    [self addSubview:labelMonth];
}

关于左上角月份的汉字的显示

如上代码,用NSArray初始化把“一月”“二月”“三月”…“十二月”存到数组里面。
然后通过MonthString的数字索引到NSArray的月份字符串(NSString经过了integerValue方法转成NSInteger),然后就可以愉快的显示到导航栏上了。

  移动开发 最新文章
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:31 
 
开发: 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/19 21:06:04-

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