概述

Apple近日发布了Swift编程语言,Swift是供iOS和OS X应用编程的新编程语言。相信很多开发者都在学习这门新语言。
 
废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程序。
 
 
效果如下:
 
开发环境
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进行编程。
 
感谢分享

Swift UI的更多相关文章

  1. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记

    想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...

  2. Swift UI开发初探

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

  3. Swift UI开发初探 (转)

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

  4. 小波说雨燕 第三季 构建 swift UI 之 度假清单 学习笔记

    最终的效果: <1>第一个场景: 1.本地化 界面简体中文化 Supporting Files - info.plist Localization native development r ...

  5. Swift UI控件详细介绍(上)

    UI控件 首先介绍一下AppDelegate.swift@UIApplicationMain 调用了OC中的UIApplicationMain函数:UIApplicationMain是iOS应用程序的 ...

  6. Swift UI学习UITableView and protocol use

    Models: UserModel.swift Views: UserInfoCell.swift Controllers: RootViewController.swift, DetailViewC ...

  7. swift学习:第一个swift ui程序

    最近swift有点火,赶紧跟上学习.于是,个人第一个swift程序诞生了... 新建项目

  8. swift UI专项训练39 用Swift实现摇一摇功能

    微信的摇一摇功能想必大家都用过,过春节的时候抢红包也没少摇吧,那么用swift语言怎样实现这么酷炫的功能呢.摇动属于IOS内置可识别的一种动作,在你须要实现摇动功能的viewcontroller中.在 ...

  9. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(五)Image View视图 学习笔记

    留下两个问题:1.后面涉及到的异常不知道原因.2.动态图片到了程序里面就不动了.       然后:   上面是有问题的,下面是没有问题的了.    代码(另外简单写的代码,纠正了那个错误): imp ...

随机推荐

  1. NGINX配置小随笔

    达到以下效果: 1,特定目录被指定IP访问 2,不是指定的IP地址不能执行URI中特定字符串 3,特定目录中不能执行PHP文件 set $self_visit ''; if ( $request_ur ...

  2. 一个资深java面试官的“面试心得”

    在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过.先表达一下我自己对面试的观点: 1.笔试.面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”.通过一 ...

  3. SQL SERVER 自带系统存储过程分类

    目录存储过程 用于实现 ODBC 数据字典功能,并隔离 ODBC 应用程序以使其不受基础系统表更改的影响. 变更数据捕获存储过程 用于启用.禁用.或报告变更数据捕获对象. 游标存储过程 用于实现游标变 ...

  4. qt tablewidget中单个和批量删除代码如下(部分)截图如下

    def coltable(self):#行删除    row=self.downwidget.currentRow()    select=self.downwidget.isItemSelected ...

  5. MySQL server version for the right syntax to use near &#39;type=InnoDB&#39; at line 1

    转载请注明出处:http://blog.csdn.net/bettarwang/article/details/40180271 在执行一个Hibernate的演示样例时,配置了<propert ...

  6. android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

    如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...

  7. UIImagePickerController从拍照、图库、相册获取图片

    iOS 获取图片有三种方法: 1. 直接调用摄像头拍照 2. 从相册中选择 3. 从图库中选择 UIImagePickerController 是系统提供的用来获取图片和视频的接口: 用UIImage ...

  8. Android实现程序前后台切换效果

    本文演示如何在Android中实现程序前后台切换效果. 在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识. 我们都知道,一个Activity 可以启动另一个Act ...

  9. RMAN的show,list,crosscheck,delete命令

    1.SHOW命令:      显示rman配置: RMAN> show all; 2.REPORT命令: 2.1.RMAN> report schema 报告目标数据库的物理结构; 2.2 ...

  10. Stm32高级定时器(四)

    Stm32高级定时器(四) 1 编码器接口模式 1.1 编码器原理 什么是正交?如果两个信号相位相差90度,则这两个信号称为正交.由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向.根 ...