国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

個(gè)性化wordpress南京百度提升優(yōu)化

個(gè)性化wordpress,南京百度提升優(yōu)化,智慧團(tuán)建初始密碼是什么,網(wǎng)站做app安全嗎知乎日?qǐng)?bào)第一周總結(jié) 文章目錄 知乎日?qǐng)?bào)第一周總結(jié)前言網(wǎng)絡(luò)異步導(dǎo)致視圖無法加載加載網(wǎng)絡(luò)上的圖片實(shí)現(xiàn)一個(gè)上拉刷新的效果左上角的時(shí)間初步實(shí)現(xiàn)了點(diǎn)擊cell進(jìn)入網(wǎng)頁小結(jié) 前言 筆者在本周算是正式開始寫項(xiàng)目了,本周主要是大致完成了主頁的內(nèi)容,大致完成了主…

知乎日?qǐng)?bào)第一周總結(jié)

文章目錄

  • 知乎日?qǐng)?bào)第一周總結(jié)
    • 前言
    • 網(wǎng)絡(luò)異步導(dǎo)致視圖無法加載
    • 加載網(wǎng)絡(luò)上的圖片
    • 實(shí)現(xiàn)一個(gè)上拉刷新的效果
    • 左上角的時(shí)間
    • 初步實(shí)現(xiàn)了點(diǎn)擊cell進(jìn)入網(wǎng)頁
    • 小結(jié)

前言

筆者在本周算是正式開始寫項(xiàng)目了,本周主要是大致完成了主頁的內(nèi)容,大致完成了主頁面的ui以及實(shí)現(xiàn)了點(diǎn)擊進(jìn)入單個(gè)cell的效果,但還存在一些小問題,之后找到解決方法會(huì)補(bǔ)充上去。

網(wǎng)絡(luò)異步導(dǎo)致視圖無法加載

因?yàn)榫W(wǎng)絡(luò)申請(qǐng)的異步經(jīng)常會(huì)導(dǎo)致我們的視圖無法實(shí)現(xiàn)正常的加載,會(huì)導(dǎo)致我們的視圖已經(jīng)加載好了但是上面沒有任何內(nèi)容。后面筆者查閱了一下資料后知道了應(yīng)該在我們的block回調(diào)函數(shù)里面加入dispatch_async(dispatch_get_main_queue(), <#^(void)block#>),這個(gè)函數(shù)的含義是一個(gè)異步執(zhí)行的GCD,他可以保證我們?cè)谄渌€程的任務(wù)完成后回到主線程中執(zhí)行相關(guān)函數(shù),在iOS開發(fā)中,布局UI的工作永遠(yuǎn)都是由主線程去完成的,所以我們必須要在主線程中執(zhí)行布局ui的相關(guān)函數(shù),這里自然也包括[self.iView.tableView reloadData]下面筆者申請(qǐng)網(wǎng)絡(luò)請(qǐng)求后重新加載數(shù)據(jù)的部分代碼:

[[Manger sharedManger] urlDataLoad:^(MainPageModel * _Nonnull model) {self.iModel = [NSMutableArray arrayWithObject:model];dispatch_async(dispatch_get_main_queue(), ^{[self.iView.tableView reloadData];[self.iView.headActivity stopAnimating];});}];

加載網(wǎng)絡(luò)上的圖片

這里筆者采用了一個(gè)第三方庫(kù)SDWebImage這個(gè)庫(kù)來申請(qǐng)我們從網(wǎng)絡(luò)上獲取的圖片,具體的使用同樣是通過一個(gè)cocopods庫(kù)來進(jìn)行一個(gè)導(dǎo)入就可以實(shí)現(xiàn)一個(gè)加載網(wǎng)絡(luò)上的圖片。筆者這里就簡(jiǎn)單介紹一下如何實(shí)現(xiàn)一個(gè)加載網(wǎng)絡(luò)圖片:

TopContentView* iView = [[TopContentView alloc] initWithFrame:CGRectMake(i * WIDTH, 0, WIDTH, WIDTH - 20)];
[iView.imageView sd_setImageWithURL:[NSURL URLWithString:topModel.image]];

實(shí)現(xiàn)一個(gè)上拉刷新的效果

實(shí)現(xiàn)的效果圖:

在這里插入圖片描述

我們需要實(shí)現(xiàn)一個(gè)一個(gè)上拉刷新的一個(gè)效果,同時(shí)也需要一個(gè)加載的顯示,筆者這里沒有采用第三方庫(kù)來實(shí)現(xiàn),而是采用了UIScrollView的協(xié)議函數(shù)以及UIActivityIndicatorView這兩個(gè)東西來實(shí)現(xiàn),筆者這里采用的協(xié)議函數(shù)是- (void)scrollViewDidScroll:(UIScrollView *)scrollView這個(gè)函數(shù)來實(shí)時(shí)監(jiān)控他的一個(gè)滑動(dòng),在他劃到最底端的時(shí)候開始進(jìn)行一個(gè)網(wǎng)絡(luò)請(qǐng)求申請(qǐng)一個(gè)新的數(shù)據(jù):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {if (scrollView.tag == 100) {CGFloat x = scrollView.contentOffset.x;//CGFloat y = scrollView.contentOffset.y;CGFloat contentWidth = scrollView.contentSize.width;if (x >= contentWidth - WIDTH) {[scrollView setContentOffset:CGPointMake(WIDTH, 0) animated:NO];NSLog(@"1");} else if (x <= 0) {[scrollView setContentOffset:CGPointMake(contentWidth - 2 * WIDTH, 0) animated:NO];NSLog(@"2");} else {self.iView.page.currentPage = x / WIDTH - 1;}} else if (scrollView.tag == 101 && !self.loading) {CGFloat y = scrollView.contentOffset.y;CGFloat contentHeight = scrollView.contentSize.height;CGFloat height = scrollView.bounds.size.height;NSLog(@"%lf ? %lf", height, contentHeight);NSLog(@"%lf", y);if (y + height >= contentHeight + 10) { // 滑到接近底部的位置NSLog(@"%lf", y);[self loadData];} else if (y < -100) {[self download];}}
}
-(void)loadData {if (self.loading) {return;}self.loading = YES;NSInteger num = [self.dateModel.headString intValue];NSString* str = [NSString stringWithFormat:@"%ld", num - self.iModel.count + 1];NSLog(@"%@", str);self.iView.tableView.tableFooterView = self.iView.footerView;[self.iView.activity startAnimating];//[self.iView.activity startAnimating];[[Manger sharedManger] newDateLoad:^(MainPageModel * _Nonnull model) {[self.iModel addObject:model];NSLog(@"%ld", self.iModel.count);dispatch_async(dispatch_get_main_queue(), ^{[self.iView.tableView reloadData];[self.iView.activity stopAnimating];self.iView.tableView.tableFooterView = nil;self.loading = NO;});} andNsstring:str];
}

這里給這個(gè)視圖控制器設(shè)置了一個(gè)bool型的變量,如果這個(gè)變量的為YES的時(shí)候就說明他正在加載,就會(huì)直接退出防止他進(jìn)入網(wǎng)絡(luò)申請(qǐng),從而導(dǎo)致多次申請(qǐng)網(wǎng)絡(luò)請(qǐng)求,從而導(dǎo)致了加載的問題。

還有下面的加載圖案是筆者使用了一個(gè)UIActivityIndicatorView的控件,把這個(gè)空間添加到一個(gè)UIVIew上面,然后把那個(gè)UIView加到uitableView的footerView上就可以實(shí)現(xiàn)一個(gè)加載的效果。然后在網(wǎng)絡(luò)申請(qǐng)結(jié)束之后給這個(gè)tableView的footerView重新變成nil就可以實(shí)現(xiàn)了,這里筆者給出一張UITabeleView中一些屬性和控件的位置關(guān)系和圖片:

在這里插入圖片描述

從這張圖片上我們就可以看出一條公式也就是contentOffset.y == content的頂部 和 frame.origin.y 的差值,所以只要兩者接近的時(shí)候就一意味著我們其實(shí)已經(jīng)滑動(dòng)的快接近底部了,所以就可以進(jìn)行一個(gè)網(wǎng)絡(luò)請(qǐng)求,但這里其實(shí)還有一個(gè)framebounds的區(qū)別,這里筆者之后會(huì)撰寫一篇博客來特別講述這部分內(nèi)容。

左上角的時(shí)間

左上角的時(shí)間筆者是采用了一個(gè)NSDate類來實(shí)現(xiàn),通過NSDate來獲取當(dāng)前的時(shí)間從而加載到坐上角的視圖中。

- (void)judgeDate {NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"MM-dd"];NSString* str0 = [dateFormatter stringFromDate:self.nowDate];NSString* str = [str0 substringWithRange: NSMakeRange(0, 2)];NSDictionary* monthDicty = @{@"01":@"正月",@"02":@"杏月",@"03":@"桃月",@"04":@"槐月",@"05":@"榴月",@"06":@"荷月",@"07":@"霜月",@"08":@"桂月",@"09":@"玄月",@"10":@"陽月",@"11":@"冬月",@"12":@"臘月"};
//    NSDictionary* dataDicty = @{@"1":@"一",@"2":@"二",@"3":@"三",@"4":@"四",@"5":@"五",@"6":@"六",@"7":@"七",@"8":@"八",@"9":@"九"};NSString* str2 = [str0 substringWithRange: NSMakeRange(3, 1)];NSString* str3 = [str0 substringWithRange:NSMakeRange(4, 1)];self.monthString = [monthDicty[str] copy];self.dateString = [NSString stringWithFormat:@"%@%@", str2, str3];self.date = [NSString stringWithFormat:@"%@%@", str2, str3];self.month = [str copy];self.headString = [NSString stringWithFormat:@"2024%@%@%@", str, str2, str3];
}
- (NSMutableArray*)yesterDay:(NSInteger) section {NSInteger dateNum = [self.date intValue];NSInteger monthNum = [self.month intValue];NSString* dateStr = [NSString stringWithFormat:@"%ld", dateNum - section];NSString* monthStr = [NSString stringWithFormat:@"%ld", monthNum];return [NSMutableArray arrayWithArray:@[dateStr, monthStr]];
}

初步實(shí)現(xiàn)了點(diǎn)擊cell進(jìn)入網(wǎng)頁

在這里插入圖片描述

這里只是初步實(shí)現(xiàn),采用了一個(gè)WKweb這個(gè)類來實(shí)現(xiàn),具體內(nèi)容會(huì)在下篇博客中講。

小結(jié)

筆者這里還有挺多問題未解決,如無限輪播圖下面的一個(gè)毛玻璃效果還未實(shí)現(xiàn),以及右上角的導(dǎo)航欄的頭像還沒布局,筆者準(zhǔn)備最后寫收藏中心的時(shí)候一并加上,這周學(xué)到很多知識(shí),也復(fù)習(xí)了很多內(nèi)容,發(fā)現(xiàn)自己對(duì)于各類知識(shí)的掌握仍有一些問題,iOS的學(xué)習(xí)任重而道遠(yuǎn),筆者會(huì)繼續(xù)努力學(xué)習(xí)相關(guān)內(nèi)容。

http://m.aloenet.com.cn/news/42889.html

相關(guān)文章:

  • 招聘網(wǎng)站可以同時(shí)做兩份簡(jiǎn)歷嗎seo職業(yè)技能培訓(xùn)班
  • 叫別人建個(gè)網(wǎng)站多少錢廣州 競(jìng)價(jià)托管
  • 建設(shè)公司網(wǎng)站有什么好處關(guān)鍵詞優(yōu)化外包服務(wù)
  • 公司自有網(wǎng)站工信備案原版百度
  • 模板網(wǎng)站robots怎么做如何建網(wǎng)站要什么條件
  • 商務(wù)部網(wǎng)站市場(chǎng)體系建設(shè)司子站微信如何引流推廣精準(zhǔn)加人
  • 深圳網(wǎng)站建設(shè)策劃企業(yè)宣傳方式
  • 可視方便建站微網(wǎng)站哪個(gè)好怎么用論壇seo網(wǎng)站
  • asp.net網(wǎng)站開發(fā)教程 pdf網(wǎng)站關(guān)鍵詞排名外包
  • 做logo找靈感的網(wǎng)站微信朋友圈營(yíng)銷文案
  • 企業(yè)云網(wǎng)站建設(shè)互聯(lián)網(wǎng)廣告行業(yè)
  • 網(wǎng)站開發(fā) 報(bào)價(jià)單 表格百度權(quán)重1是什么意思
  • 手機(jī)和網(wǎng)站頁面模板手機(jī)制作網(wǎng)頁
  • 在家做網(wǎng)站目前最火的推廣平臺(tái)
  • 呼市網(wǎng)站開發(fā)域名購(gòu)買哪個(gè)網(wǎng)站好
  • 可以找酒店案例的網(wǎng)站網(wǎng)站流量排名
  • 茶的網(wǎng)站制作網(wǎng)站權(quán)重什么意思
  • 修改wordpress ftp端口廣州aso優(yōu)化
  • 培訓(xùn)學(xué)校 網(wǎng)站費(fèi)用免費(fèi)網(wǎng)站的軟件
  • WordPress快速發(fā)布文章濱州seo排名
  • 網(wǎng)站建設(shè)流行技術(shù)精準(zhǔn)客戶截流軟件
  • 專業(yè)做公司宣傳網(wǎng)站網(wǎng)站seo優(yōu)化步驟
  • 西安網(wǎng)站制作頂尖網(wǎng)站優(yōu)化要做哪些
  • 成都專業(yè)網(wǎng)站推廣公司百度推廣有哪些形式
  • 成都網(wǎng)站制作創(chuàng)新互聯(lián)微軟優(yōu)化大師
  • 天遠(yuǎn)軟件網(wǎng)站建設(shè)百家號(hào)關(guān)鍵詞排名優(yōu)化
  • 建網(wǎng)站公司成都百度服務(wù)中心投訴
  • 網(wǎng)站怎么做友情鏈接深圳關(guān)鍵詞排名推廣
  • 做網(wǎng)站簡(jiǎn)單嗎百度后臺(tái)管理
  • 安徽省建設(shè)廳網(wǎng)站證書查詢跨境網(wǎng)站建站