swift实战小程序1天气预报

在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。新建一个工程,命名为Weather,然后上网找一个天气预报的API,百度搜索“天气预报 api”,打开一个网站,如下图:

我们最好找json的格式的api,比如这样的

找到API之后,我们来制作一个用户界面,打开storyboard,加载一个按钮,命名为北京的天气信息:

在按钮下方加一个text view来呈现天气信息:

现在添加一个按钮的点击事件,打开ViewController,输入以下代码:

 @IBAction func btnPressed(sender:AnyObject){
    println("Button Clicked")
    }

再回到storyboard中,右键点击,把Touch up inside拖到view controller中可以看到我们刚刚定义的btnPressed,点击关联,效果如下:

运行看一下效果,点击按钮,显示:

然后我们来加载天气信息,为了让我们的程序更好,在工程中建立一个playground,targets勾选Weather,建好的playground如图:

playground中的代码如下:

var url = NSURL(string: "http://api.k780.com:88/?app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json")
var data:NSData = NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingUncached, error: nil)!
var str = NSString(data: data, encoding: NSUTF8StringEncoding)

接着我们来解析JSON,使用swift自带的解析工具,代码如下:

var json: AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil)

var weatherInfo: AnyObject? = json?.objectForKey("result")
var city = weatherInfo?.objectForKey("citynm")

效果如图:

可以从右边看到我们得到了Json中的城市信息,补全我们需要的所有信息:

var city = weatherInfo?.objectForKey("citynm")

var temp = weatherInfo?.objectForKey("temperature")

var day = weatherInfo?.objectForKey("days")

现在我们在ui中呈现天气信息,把刚才playground中写的部分拷贝,然后在viewcontroller中新建一个方法loadWeather,把代码拷进去,再在viewDid方法中调用loadWeather,最后增加一个IBOutlet与storyboard相关联,方法依旧是拖动,拖动storyboard中的New Referencing Outlet与tv相关联。然后在btnPressed方法中依旧增加loadWeather方法.

在loadWeather方法中加上信息的显示语句:

 tv?.text = "城市:\(city)\n温度:\(temp)\n日期:\(day)"

运行一下看看效果,如图:

虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:

大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

时间: 2024-08-08 05:36:20

swift实战小程序1天气预报的相关文章

熊晨沣蓝牙实战--小程序蓝牙连接2.0

微信小程序蓝牙连接2.0说明: 1.本版本区分了ANDROID和IOS系统下蓝牙连接的不同方式.2.兼容了更多情况下的链接包括: (1)未开启设备蓝牙,当监听到开启了蓝牙后自动开始连接.(2)初始化蓝牙失败后每3000ms自动重新初始化蓝牙适配器.(3)安卓端开启蓝牙适配器扫描失败,每3000ms自动重新开启.(4)IOS端获取已连接蓝牙设备为空,每3000ms自动重新获取.(5)安卓端蓝牙开始链接后中断扫描,连接失败了,重新开始扫描.(6)IOS端开始连接设备后,停止获取已连接设备,连接失败自

Swift实战-小QQ(第1章):QQ登录界面

1.新建小QQ项目 2.将所需用到的图片资源(resource)文件夹,添加到项目中.并新建一个登录页面:LoginViewController.swift 3.修改LoginViewController.swift代码为 import UIKit class LoginViewController: UIViewController { // } 4.将Main.storyboard的默认的view视图,关联为LoginViewController控制器,并拖控件进入view视图布局. 简单布

Swift实战-小QQ(第3章):QQ主界面布局

1.建一个tabbarController 三个navigationController 三个ViewController 2.将SliderViewController文件中的initSubViews后面添加代码: //用mainContentView装下MainTab var mainTabVC: UITabBarController! = self.storyboard!.instantiateViewControllerWithIdentifier("MainTabViewControl

Swift实战-小QQ(第2章):QQ侧滑菜单

QQ侧滑实现架构:需要建立以下几个ViewController:1.XQBaseViewController 2.LeftViewController3.RightViewController4.ContentViewController(中间显示的主要内容) 5.SliderViewController(用于控制侧滑动画,控制左右侧栏的显示和隐藏) 本章未完.待续... 谢谢关注.

微信小程序开发(1) 天气预报

本文介绍如何使用微信小程序开发天气预报功能. 一.项目文件列表 二.小程序配置 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. { "pages":[ "pages/index/index" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgrou

CK2020微信小程序入门与实战 常用组件API开发技巧项目实战

新年伊始,学习要趁早,点滴记录,学习就是进步! 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853  获取资料. 下载地址:https://pan.baidu.com/s/1hsU5EIS 微信小程序入门与实战 常用组件API开发技巧项目实战 小程序官方正式公告,开放了更多的入口,个人开发者可以申请

02月刊(上) | 微信小程序

* { margin: 0; padding: 0 } .con { width: 802px; margin: 0 auto; text-align: center; position: inherit } textarea { width: 800px; height: 300px; display: block } input { width: 120px; height: 40px; margin: 10px auto } #box { font-family: "微软雅黑";

微信小程序开发优秀教程及文章合集第一期

我会不定期的选取一些优质教程,整理成辑,以便大家集中阅读: 新手向!微信小程序开发手记系列:微信小程序开发手记<一>:项目的代码结构微信小程序开发手记<二>:属性display微信小程序开发手记<三>:backgroud和border属性微信小程序开发手记<四>:视图容器微信小程序开发手记<五>:组件微信小程序开发手记<六>:API 艺龙系列:精品!艺龙小程序:开发项目遇到的问题以及解决方案:http://www.wxapp-unio

微信小程序实战之天气预报

原文:微信小程序实战之天气预报 这个案例是仿UC中天气界面做的中间也有点出入,预留了显示当前城市名字和刷新图标的位置,自己可以写下,也可以添加搜索城市.值得注意的是100%这个设置好像已经不好使了,可以通过获取设备的高度通过数据绑定设置高度.地址:https://github.com/shuncaigao/Weather 界面主要分为四部分: 第一部分 这里是预留的一块可以自行添加补充下 <view class="newTopView"> <!--左边添加当前城市名字