概述

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. Android相关类关系

    Activity Window.WindowManager View. interface----ViewManager LayoutInflater Components Activity.Serv ...

  2. Hunt the Wumpus第二个版本---多怪兽,多洞穴,洞穴间双向互通

    其中,将洞穴连起来的算法要好好体会. 学习构建临时变量列表,确认循环用FOR,非确定循环用 WHILE,并定好退出条件. from random import choice cave_numbers ...

  3. 前端模拟发送数据-Chrome下的REST Client

    1)确定需要POST的数据 2)拼接数据,POST给服务器 3)查看服务器响应及结果

  4. class 类(1)

    创建类 #!/usr/bin/env python # coding=utf-8 __metaclass__ = type class Person: def __init__(self, name) ...

  5. JavaScript 滚动页面到指定元素位置

    页面评论功能,当评论较多时,有时须要滚动到评论头部. 能够使用scrollTop方法,加上一点延时动画(animate),可訪问在线演示,代码大体例如以下: <html> <scri ...

  6. Linux内核设计基础(十)之内核开发与总结

    (1)Linux层次结构: (2)Linux内核组成: 主要由进程调度(SCHED).内存管理(MM).虚拟文件系统(VFS).网络接口(NET)和进程间通信(IPC)等5个子系统组成. (3)与Un ...

  7. ngui点击与场景点击判断

    注:NGUI 组件上加上 BoxCollider 并设置区域大小 public void OnMouseDown()    { if (UICamera.hoveredObject == null) ...

  8. AIX 常用命令和知识

      BOOTLIST:#bootlist -m normal -o (查看bootlist)#bootlist -m normal (设置bootlist为空,谁要在我机器上执行我就要哭了)#boot ...

  9. IO中手机旋转事件的传递

    UIApplication -> delegate -> widnow -> rootViewController

  10. 超长英文(代码)自动换行的样式(CSS)

    如何想让一连串文字在显示可以自动换行,而不会把在代码中使用的容器撑开,则在文章的CSS样式处加上以下代码即可: table-layout: fixed; word-wrap:break-word;或者 ...