96SEO 2026-02-19 17:56 0
。

根据iPhone中天气App的功能大致可以将仿写的App分为四个界面——首页#xff0c;搜索界面#xff0c;添加界面#xff0c;浏…
最近完成了暑假的最后一个任务——天气预报特此记录博客总结。
根据iPhone中天气App的功能大致可以将仿写的App分为四个界面——首页搜索界面添加界面浏览界面同时在天气预报中调用了较多的API具体使用方法可以看这篇博客——【iOS】json数据解析以及简单的网络数据请求这里不再说明
对于首页笔者将北京作为城市数组的第一个元素后续可以通过搜索界面与添加界面对首页的城市进行添加
这里需要注意的是因为我们的天气是实时变化的所以我们只需要得到添加的城市名然后通过城市名来得到实时的天气
另外需要注意的是因为我们的每个城市的天气的背景图片是不同的然而我们自定义cell的在其出列时就已经被设置好后面再去在-
cellForRowAtIndexPath:(NSIndexPath
*)indexPath;方法中设置背景图片就会将自定义cell中原本自定义的控件覆盖掉。
UIImageView并设置其内容为图片UIImageView
initWithImage:image];imageView.frame
cell.contentView.bounds;imageView.contentMode
UIViewContentModeScaleAspectFill;imageView.clipsToBounds
atIndex:0];这样就做到了我们的背景图片不会覆盖我们cell中的控件当然我们也可以在我们的对应的TableViewCell函数中设置我们的背景图片只不过这样设置的背景图片比较单一所以这里在-
cellForRowAtIndexPath:(NSIndexPath
笔者这里使用的搜索栏是UISearchBar我们在h文件中添加对应协议使用监听即可实现我们的搜索的实时变化
可以看到我们这里利用搜索界面打开对应城市区县的天气之后点击添加按钮相应的城市或区县就会被添加到首页这里实际上使用了我们的通知传值同样的如果存在相同城市那么就添加失败。
具体有关通知传值的方法可以看这篇博客——【iOS】多界面传值
forKey:key];[[NSNotificationCenter
dismissViewControllerAnimated:YES
preferredStyle:UIAlertControllerStyleAlert];UIAlertAction
style:UIAlertActionStyleDefault
presentViewController:self.alert
selector:selector(receiveNotice:)
(void)receiveNotice:(NSNotification
addObject:send.userInfo[key]];[self
}另外在这里笔者使用了SVGKit第三方库因为在笔者调用的API中图标是以SVG的格式给出的但是原生的Xcode并不支持SVG格式的图片因此需要用到第三方库SVGKit具体怎么使用第三方库在这篇博客【iOS】Cocoapods的安装以及使用中已经讲解过如何使用。
但是需要注意的一点是我们导入的SVGKit无法直接使用会出现如下的问题
CocoaPods这是CocoaPods本身的问题如何解决这个问题笔者在这篇回答中找到了答案——Build
stringWithFormat:https://devapi.qweather.com/v7/weather/7d?location%key4c75fbc6961d404289bf6b44d9009576,
stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet
URLQueryAllowedCharacterSet]];//创建URLNSURL
URLWithString:urlString];NSLog(%,
urlString);//2.创建请求类NSURLRequest
requestWithURL:url];//3.创建会话//delegateQueue
sharedSession];用于简单的网络请求NSURLSession
sessionWithConfiguration:[NSURLSessionConfiguration
delegateQueue:[NSOperationQueue
mainQueue]];//4.根据会话创建任务NSURLSessionDataTask
substringWithRange:NSMakeRange(5,
将时间和温度分别添加到数组中[self.dayArray_Days
addObject:time];[self.iconArray_Days
addObject:icon];[self.temperatureArray_Days
temperature_High];self-_lowestT.text
temperature_Low];count;self-_sunRise
currentDayData[sunrise];self-_sunSet
currentDayData[sunset];self-_precip
currentDayData[precip];self-_uvIndex
currentDayData[uvIndex];NSLog(%,
currentDayData[sunrise]);}}[[NSOperationQueue
addOperationWithBlock:^{[self-_tableView2
{NSLog(无法获取当前时间的天气数据。
);}}}}];//
resume];}这里需要注意的是笔者这里将从API得到的数据存到对应的数组中
笔者这里将首页中的城市都传入了浏览界面核心思路就是利用我们的UIScrollView我们先前实现轮播图的思路是在UIScrollView中添加图片实现滚动我们这里就将图片换成对应城市的视图控制器即可
didSelectRowAtIndexPath:(NSIndexPath
indexPath.section;t.modalPresentationStyle
}//ScrollViewController添加对应城市视图
self.view.bounds.size.width;MenuShowViewController
imageNamed:t1].CGImage);t.view.frame
self.view.bounds.size.height);[self
addChildViewController:t];[self.scrollView
didMoveToParentViewController:self];
}同时笔者这里给出实现pageControl固定在视图底部的实现代码
self.pageControl.pageIndicatorTintColor
self.pageControl.currentPageIndicatorTintColor
addSubview:self.pageControl];其实核心就是[self.view
addSubview:self.pageControl];无论我们的ScrollView如何滚动我们的view是不变的因此将pageControl添加到view中即可实现分页控件的固定
暑假的App仿写已经全部写完后面回去学习一些第三方库例如Masonry与AFNetworking
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback