原文地址:http://www.tairan.com/archives/6600

关于Swift语法,可以参考《Apple Swift编程语言入门教程

效果如下:

开发环境

  • Xcode6-beta
  • iOS8

创建工程

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

    此处选择 Single view Application。

  • 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(,)))//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(,)))
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

classViewController: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开发初探 (转)的更多相关文章

  1. Swift UI开发初探

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

  2. Swift学习之UI开发初探

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

  3. Swift UI

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

  4. Android与Swift iOS开发:语言与框架对比

    Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有Sw ...

  5. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  6. 漫谈GUI开发—各种平台UI开发概况

    前言: 在看这边文章前,可以建议看下:图形界面操作系统发展史——计算机界面发展历史回顾 从CS到BS,现在的前端开发,其实也是GUI开发范畴.现今 各平台的UI开发概况 HTML&CSS,Wi ...

  7. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  8. Android UI开发【开篇导航】

    如今移动互联网正处于飞速发展的时期,正式看中这个行业的发展势头,本人在2011年从.NET转行做了移动应用开发这块,接触了android和ios开发,到今已快3个年头,先前忙于学习各种基础知识和语法方 ...

  9. Android UI开发第四十一篇——墨迹天气3.0引导界面及动画实现

    周末升级了墨迹天气,看着引导界面做的不错,模仿一下,可能与原作者的代码实现不一样,但是实现的效果还是差不多的.先分享一篇以前的文章,android动画的基础知识,<Android UI开发第十二 ...

随机推荐

  1. laravel5.2总结--返回值

    基本概念和概述 1>StdClass 对象=>基础的对象 2>Eloquent 模型对象(Model 对象)=>和模型相关的类对象 3>Eloquent 集合=>可 ...

  2. JavaScript学习笔记——1.了解JavaScript

    百度百科: JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HT ...

  3. P1900 自我数

    题意: 对于每一个正整数n,我们定义d(n)为n加上它每一位数字的和. 例如,d(75)=75+7+5=87.给定任意正整数n作为一个起点,都能构造出一个无限递增的序列:n, d(n), d(d(n) ...

  4. linux select代码框架

    #define PORT 1234 #define BACKLOG 5 #define MAXDATASIZE 1000 typedef struct CLIENT{ int fd; char* na ...

  5. kuangbin专题十六 KMP&&扩展KMP HDU2328 Corporate Identity

    Beside other services, ACM helps companies to clearly state their “corporate identity”, which includ ...

  6. pytorch搭建网络,保存参数,恢复参数

    这是看过莫凡python的学习笔记. 搭建网络,两种方式 (1)建立Sequential对象 import torch net = torch.nn.Sequential( torch.nn.Line ...

  7. 07-图5 Saving James Bond - Hard Version (30 分)

    This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...

  8. Go语言基础之17--Redis基本操作

    一.介绍与连接 1.1 介绍 使用第三方的redis库, github.com/garyburd/redigo/redis github地址:https://github.com/gomodule/r ...

  9. WIN10安装SW2012完整破解文件和问题解决Crack

    Win10在安装solidword后,激活时有可能报错,本文介绍怎么解决问题 安装后激活报错信息: 一.按下面步骤进行安装 1.相关序列号,记住要断网进行安装 Install SolidWorks 2 ...

  10. java——cmd命令编译带包名的源程序

    .java文件的绝对路径:C:\eclipse-workspace\test_01\src\test\try.java try.java的包名为:package test; 在cmd中 cd C:\e ...