Swift是供iOS和OS X应用编程的新编程语言。相信很多开发者都在学习这门新语言。废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程序。

AD:

概述

Apple近日发布了Swift编程语言,Swift是供iOS和OS X应用编程的新编程语言。相信很多开发者都在学习这门新语言。

废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程序。

关于Swift语法,可以参考《苹果Swift编程语言快速上手入门教程》&《苹果的新编程语言 Swift 简介》

效果如下:

开发环境

Xcode6-beta

iOS 8

创建工程

1. Choose File > New > Project > (iOS or OS X) > Application > your template of choice.

此处选择 Single view Application。

2. Click the Language pop-up menu and choose Swift.

添加基本控件

在ViewController.swift文件中进行编码,该文件类似Objective-C的ViewController.m。

UILabel

UILabel 控件常用于显示文本标签。

下面我们来创建一个label, 查看UILabel类发现其继承于UIView, NSCoding。

可以通过类似创建view的方法,设置大小和lebel的text,通过addSubview方法将其加到当前view上。

代码如下:

  1. let label = UILabel(frame:CGRect(origin: CGPointMake(10.0, 50.0), size: CGSizeMake(150,50)))//let 是Swift 表示常量的关键字
  2. label.text = "This is a Label"
  3. self.view.addSubview(label)

UILabel创建参数使用了别名,这点像Object-C。

UIButton

UIButton 控件常用于按钮。

下面我们来创建一个button按钮,并设置它的UIControlEvents.TouchUpInside事件的处理,查看UIButton类发现其继承于UIControl, NSCoding。

可以通过类似创建view的方法,指定位置和大小创建一个按钮,然后设置按钮的titile,设置按钮的背景色,并设置按钮的touch事件。

最后通过addSubview方法将其加到当前view上。

代码如下:

  1. let btn = UIButton(frame:CGRect(origin: CGPointMake(10.0, 110.0), size: CGSizeMake(150,50)))
  2. btn.setTitle("button", forState: UIControlState.Normal)
  3. btn.backgroundColor = UIColor.redColor()
  4. btn.addTarget(self, action: "buttonClick:", forControlEvents: UIControlEvents.TouchUpInside)
  5. self.view.addSubview(btn)

buttonClick方法实现如下:

  1. func buttonClick(sender: UIButton!){
  2. }

UIButton后面的 ”!“ 意味着,sender可以是由UIButton继承来的任意子类。

UIAlertView

UIAlertView 常用于弹出对话框,下面我们来创建一个alert。

UIAlertView类继承于UIView,我们先创建了一个alert,然后设置alert的title、message、button、delegate。

然后调用UIAlertView的show方法,显示alert。

我们是在button的touch回调事件中处理alert的创建和显示的。在buttonClick方法中添加如下代码:

  1. var alert = UIAlertView()
  2. //直接这样创建有bug
  3. //var alert = UIAlertView(title: "alert", message: "this is an alert", delegate: self, cancelButtonTitle: "cancel")
  4. alert.title = "alert"
  5. alert.delegate = self
  6. alert.addButtonWithTitle("cancel")
  7. alert.message = "this is an alert"
  8. alert.show()

delegate和self,依然有Object-C的影子。

修改ViewController的声明,加入UIAlertViewDelegate

  1. class ViewController: UIViewController, UIAlertViewDelegate

实现alert的delegate方法,处理button的click事件。

  1. //处理alert 的button click
  2. func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int){
  3. println("buttonIndex:\(buttonIndex)")
  4. }

总结

Swift 的UIKit API接口和 Objective-C的API接口总体上保持一致,熟悉原来的UIKit接口的话,上手Swift UI开发应该很快。

可以通过文档和API手册查看各Objective-C的API 如何使用Swift 的API进行编程。

点击这里获取本文的Demo

Swift学习之UI开发初探相关推荐

  1. Swift UI开发初探

    今天凌晨Apple刚刚发布了Swift编程语言,Swift是供iOS和OS X应用编程的新编程语言.相信很多开发者都在学习这门新语言. 废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程 ...

  2. 安卓学习总结-UI开发流程

    最近做的工作,主要是对安卓的一系列UI组件的开发,在完成设计需求的过程中,对UI开发流程有了一点小想法,今天来把他们总结一下. UI开发流程图 一.了解安卓中的View体系 在UI开发的过程中,我们一 ...

  3. swift学习笔记_iOS开发(一)

    swift已经问世n久了,给自己充充电,学习一下苹果的新东西,苹果公司日渐推崇更为简洁明了更为直观快速的程序开发模式,从适配的AutoLayout到Swift语言,苹果一直在鼓励开发者去探索使用新技术 ...

  4. swift学习笔记-UI篇之UIImageView

    1.基本使用 将要使用的图片拖入到项目里,我这里使用的是名为"1.jpg"的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg" //1. ...

  5. Android:日常学习笔记(8)———探究UI开发(2)

    Android:日常学习笔记(8)---探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...

  6. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  7. 1.15 从0开始学习Unity游戏开发--游戏UI

    上一章中,我们剩下最后一个任务,需要支持鼠标控制准心来进行设计,那么准心本质上就是一个始终呈现在屏幕上的一个图片,你当然可以用一个3D物体来制作,之前讲解渲染概念的时候也提到过,我们的屏幕就是相机的近 ...

  8. 【Android -- UI开发】一份 UI 开发学习指南

    思维导图 推荐资料:官方文档 六大布局 网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了. 请看文章:[Android – UI 开发]六大布局 U ...

  9. 汇集了很多swift 学习指南

    https://github.com/ipader/SwiftGuide 1,059  Unstar 7,294 Fork1,966 ipader/SwiftGuide  Code  Issues 0 ...

最新文章

  1. 怎样用springboot开发cs_SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)...
  2. Java虚拟机1:什么是Java
  3. 652. 寻找重复的子树
  4. 【XSY1295】calc n个点n条边无向连通图计数 prufer序列
  5. 《Linux内核设计与实现》读书笔记(12)--- 内存管理(2)
  6. hadoop mapreduce lzo
  7. 大数据时代亟需消除八大“疑云”
  8. RDD与DataFrame
  9. 我的世界服务器显示fps,我的世界帧数优化攻略 低配、fps低玩家必看
  10. 深入浅出通信原理知识点9
  11. 设置电脑的保护色(绿豆沙色)
  12. toastr 自定义提示
  13. 西门子、施耐德、罗克韦尔等巨头告诉你,为何你大爷始终是你大爷
  14. raspberrypi连接神经计算棒人脸识别
  15. 深入浅出Oracle Spatial
  16. 路由器、交换机的基本配置
  17. 计算机 绘图 教案,计算机绘图教案.doc
  18. 内网穿透 永久免费 简单实现外网访问内网SpringBoot
  19. 华为云桌面,如何助力企业云上轻松办公
  20. 数学专业英语词汇英汉对照

热门文章

  1. CSS:CSS+JS制作可折叠内容块
  2. 配置 IIS 7 显示详细错误信息
  3. JAVA回形数的实现
  4. Python Excel工具类封装, 实现excel表头加颜色
  5. 03-23 卡顿分析
  6. 官网python安装教程_Python安装教程
  7. php下标排序,php二维数组指定下标排序
  8. 倾斜模型精细化处理_【干货】7款倾斜摄影三维模型修补的软件介绍
  9. 7-4 sdut-求两个整数之和(II)
  10. java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable