Swift学习之UI开发初探
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上。
代码如下:
- let label = UILabel(frame:CGRect(origin: CGPointMake(10.0, 50.0), size: CGSizeMake(150,50)))//let 是Swift 表示常量的关键字
- label.text = "This is a Label"
- self.view.addSubview(label)
UILabel创建参数使用了别名,这点像Object-C。
UIButton
UIButton 控件常用于按钮。
下面我们来创建一个button按钮,并设置它的UIControlEvents.TouchUpInside事件的处理,查看UIButton类发现其继承于UIControl, NSCoding。
可以通过类似创建view的方法,指定位置和大小创建一个按钮,然后设置按钮的titile,设置按钮的背景色,并设置按钮的touch事件。
最后通过addSubview方法将其加到当前view上。
代码如下:
- let btn = UIButton(frame:CGRect(origin: CGPointMake(10.0, 110.0), size: CGSizeMake(150,50)))
- btn.setTitle("button", forState: UIControlState.Normal)
- btn.backgroundColor = UIColor.redColor()
- btn.addTarget(self, action: "buttonClick:", forControlEvents: UIControlEvents.TouchUpInside)
- self.view.addSubview(btn)
buttonClick方法实现如下:
- func buttonClick(sender: UIButton!){
- }
UIButton后面的 ”!“ 意味着,sender可以是由UIButton继承来的任意子类。
UIAlertView
UIAlertView 常用于弹出对话框,下面我们来创建一个alert。
UIAlertView类继承于UIView,我们先创建了一个alert,然后设置alert的title、message、button、delegate。
然后调用UIAlertView的show方法,显示alert。
我们是在button的touch回调事件中处理alert的创建和显示的。在buttonClick方法中添加如下代码:
- var alert = UIAlertView()
- //直接这样创建有bug
- //var alert = UIAlertView(title: "alert", message: "this is an alert", delegate: self, cancelButtonTitle: "cancel")
- alert.title = "alert"
- alert.delegate = self
- alert.addButtonWithTitle("cancel")
- alert.message = "this is an alert"
- alert.show()
delegate和self,依然有Object-C的影子。
修改ViewController的声明,加入UIAlertViewDelegate
- class ViewController: UIViewController, UIAlertViewDelegate
实现alert的delegate方法,处理button的click事件。
- //处理alert 的button click
- func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int){
- println("buttonIndex:\(buttonIndex)")
- }
总结
Swift 的UIKit API接口和 Objective-C的API接口总体上保持一致,熟悉原来的UIKit接口的话,上手Swift UI开发应该很快。
可以通过文档和API手册查看各Objective-C的API 如何使用Swift 的API进行编程。
点击这里获取本文的Demo。
Swift学习之UI开发初探的更多相关文章
- Swift UI开发初探
今天凌晨Apple刚刚发布了Swift编程语言,Swift是供iOS和OS X应用编程的新编程语言.相信很多开发者都在学习这门新语言. 废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程 ...
- Swift UI开发初探 (转)
原文地址:http://www.tairan.com/archives/6600 关于Swift语法,可以参考<Apple Swift编程语言入门教程> 效果如下: 开发环境 Xcode6 ...
- swift学习之UI控件(一)
// // ViewController.swift // test // // Created by chuangqu on 15/7/23. // Copyright (c) 2015年 ...
- swift学习笔记-UI篇之UIImageView
1.基本使用 将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"//1. 基本使用 let im ...
- Swift学习之常用UI的使用
Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...
- Android:日常学习笔记(8)———探究UI开发(5)
Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...
- Android:日常学习笔记(7)———探究UI开发(4)
Android:日常学习笔记(7)———探究UI开发(4) UI概述 View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...
- Android:日常学习笔记(8)———探究UI开发(3)
Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...
- Android:日常学习笔记(8)———探究UI开发(2)
Android:日常学习笔记(8)———探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...
随机推荐
- BZOJ 1572: [Usaco2009 Open]工作安排Job( 贪心 )
贪心... 按截止时间排序 , 然后从小到大考虑 . 假设当前考虑第 i 个任务 , 若目前已选工作数 < D_i , 那就选 i ; 否则 若已选工作中利润最小的比 P_i 小 , 那就去除它 ...
- [C#参考]委托机制
1. 委托概述 这是一个新的概念,但是其本质并不是什么新鲜的事物,委托本质上就是一个类.只不过一般的类是数据的集合,委托保存的是一个或者多个方法.委托是引用类型,因此委托有引用和对象,同时委托对象中包 ...
- sql学习之基础(MySql)
--#创建一个数据库 create database excise01; --#查看所有数据库 show databases; --#查看刚建的数据库 show create database exc ...
- 【转】从底层了解ASP.NET体系结构
从底层了解ASP.NET体系结构 原文:http://blog.csdn.net/zhoufoxcn/article/details/1890158 Java体系架构的书多如牛毛,比如SSH架构什么的 ...
- Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: Connectio (andriod sdk manager) http://dl-ssl.google.com/android上不去解决方案
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Fetched Add-ons List succes ...
- 深夜,用canvas画一个时钟
深夜,用canvas画一个时钟 查看demo 这几天准备阿里巴巴的笔试,可以说已经是心力交瘁,自从阿里和蘑菇街的内推被刷掉之后,开始越来越怀疑起自己的能力来,虽然这点打击应该是微不足道的.毕竟校招在刚 ...
- 在verilog中关于inout口的设计方法
在学习IIC的时候我们知道这么设计inout inout scl : reg scl_reg , scl_en ; scl = scl_en ? scl_reg : 1'dz ; 当 ...
- 瀑布流的三种实现方式(原生js+jquery+css3)
前言 项目需求要弄个瀑布流的页面,用的是waterfall这个插件,感觉还是可以的,项目赶就没自己的动手写.最近闲来没事,就自己写个.大致思路理清楚,还是挺好实现的... 原生javascript版 ...
- STL set的用法
要使用set需要事先引入一个头文件 #include<set> set是一个不允许重复的集合,如果要重复可以使用multiset. 1.set的插入[set.insert();],会返回P ...
- reason: 'unable to dequeue a cell with identifier Cell
今天在cell重用的时候出现一下错误 reason: 'unable to dequeue a cell with identifier Cell - must register ...