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. Swift UI开发初探 (转)

    原文地址:http://www.tairan.com/archives/6600 关于Swift语法,可以参考<Apple Swift编程语言入门教程> 效果如下: 开发环境 Xcode6 ...

  3. swift学习之UI控件(一)

    // //  ViewController.swift //  test // //  Created by chuangqu on 15/7/23. //  Copyright (c) 2015年 ...

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

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

  5. Swift学习之常用UI的使用

    Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...

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

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

  7. Android:日常学习笔记(7)———探究UI开发(4)

    Android:日常学习笔记(7)———探究UI开发(4) UI概述  View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...

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

    Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...

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

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

随机推荐

  1. Joel在耶鲁大学的演讲

    Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名. 上个月28号,他回到 ...

  2. Codeforces Round #198 (Div. 2) 340C

    C. Tourist Problem time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  3. FLASH ROM与EEPROM的区别

    EEPROM,虽然也叫“非易失性数据存储器”,但它不能直接参与ALU运算,只是用于掉电不丢失的数据存储. EEPROM和片内RAM 类似,也属于数据存储器,它的特点是数据掉电可保持,而程序存储器一般指 ...

  4. CentOS 64位上编译 Hadoop 2.6.0

    Hadoop不提供64位编译好的版本号,仅仅能用源代码自行编译64位版本号. 学习一项技术从安装開始.学习hadoop要从编译開始. 1.操作系统编译环境 yum install cmake lzo- ...

  5. 【DWR】Annotation入门

    DWR简介:http://baike.baidu.com/view/73492.htm?fr=aladdin DWR2.0以后新增加了JDK5的注解(Annotation)功能,使用注解功能之后可以从 ...

  6. 机器学习笔记(一)- from Andrew Ng的教学视频

    最近算是一段空闲期,不想荒废,记得之前有收藏一个机器学习的链接Andrew Ng的网易公开课,其中的overfiting部分做组会报告时涉及到了,这几天有时间决定把这部课程学完,好歹算是有个粗浅的认识 ...

  7. BZOJ 3713: [PA2014]Iloczyn( 枚举 )

    斐波那契数列<10^9的数很少很少...所以直接暴力枚举就行了... ------------------------------------------------------------- ...

  8. Ural 1197 - Lonesome Knight

    The statement of this problem is very simple: you are to determine how many squares of the chessboar ...

  9. Best Component for Bitmap Image

    The best is to purchase ImageEn and use the latest version. Coz nothing compares to ImageEn.... But ...

  10. validform 一行代码完成所有验证

    validform一行代码完成所有验证 在使用的时候想更改提示效果为右侧提示却一直不能成功 tiptype可以为1.2 和 自定义函数.2 表示右侧提示. 注意:tiptype为 2 时,各表单元素对 ...