swift第一个ios项目,纯代码编程
2014-06-20 15:34
344 查看
本文是在xocde6 beta1版本下写得,到xcode6正式版本后会有些小错误,请参看我的另一篇博客swift第一个ios项目,纯代码编程(续)http://blog.csdn.net/lh_work/article/details/40787265
是在本文基础上修改和添加了一些东西
最近看了看网上关于swift的一些基础介绍,大部分都采用了storyboard的方式来设计界面。但是本人还是比较喜欢以纯代码的方式来写代码的,呵呵,和本人的习惯有关。所以在这里介绍一下怎么样基于swift语言用纯代码的方式来写一个小应用吧。
当前AppStore中还没有推出Xcode6的正式版本,只能去官网用开发者账号下载beta版本,同时Xcode6要求OS X版本在10.9.3以上版本,所以发现无法使用Xcode6的朋友先升级下系统吧。
现在开始打开Xcode6来创建一个新项目吧
![](https://img-blog.csdn.net/20140620144534078)
选择Empty Application后点击next后再选择存储位置,这里就不赘述了,直接开始写代码吧
进入项目的时候只有一个AppDelegate.swift代码文件,和以前的ios项目中.h和.m文件实现一个类不同,swift语言将.h和.m中合并成了一个.swift来实现
那么我们现在先来创建一个试图控制器ViewController,为方便下一步给UIWindow设置根试图控制器
![](https://img-blog.csdn.net/20140620145340156)
选择Cocoa Touch Class点击Next 继续
![](https://img-blog.csdn.net/20140620145609796)
照着图选择继承的类和swift语言点击Next
此时将多出了一个ViewController.swift代码文件,进入这个代码文件将其init方法删除,记得必须删除,因为我们下面是用纯代码创建对象的,如果不删除这个nib初始化方法,下面在AppDelegate中创建的时候将会出错。
将
init(nibName nibNameOrNil:String?, bundle nibBundleOrNil:NSBundle?)
{
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
删除。
回到AppDelegate中开始写代码
func application(application:UIApplication, didFinishLaunchingWithOptions launchOptions:NSDictionary?)
-> Bool {
//创建试图控制器
var vc =ViewController()
//创建导航控制器,并设置其根试图控制器为vc
var nav =UINavigationController(rootViewController:vc);
self.window =UIWindow(frame:UIScreen.mainScreen().bounds)
// Override point for customization after application launch.
self.window!.backgroundColor =UIColor.whiteColor()
//设置UIWindow的根试图控制器
self.window!.rootViewController = nav;
self.window!.makeKeyAndVisible()
returntrue
}
这样就实现了纯代码的方式在swift基础上实现程序试图控制器的跳转了,接下来我们在试图控制器中添加并实现一个简单的tableview的使用
进入ViewController中
//创建tableview
var tableView :UITableView?
overridefunc viewDidLoad() {
super.viewDidLoad()
self.title ="MySwift"
setupViews()
// Do any additional setup after loading the view.
}
func setupViews()
{
//初始化tableview并设置frame
self.tableView =UITableView(frame:self.view!.frame)
//设置tableview的代理对象
self.tableView!.delegate =self
self.tableView!.dataSource =self
self.tableView!.registerClass(UITableViewCell.self,
forCellReuseIdentifier:"cell")
//将tableview添加到view试图上
self.view?.addSubview(self.tableView)
}
在这里要注意的是设置tableview的代理对象的时候会报错,其实就是因为没有在类中继承代理协议,这个和以前的警告不同直接报错了,我们在类中继承tableview的代理协议
class ViewController:UIViewController ,UITableViewDelegate ,UITableViewDataSource{
大家继续写的时候发现
self.tableView!.dataSource = self
这里仍然报错,原因是UITableViewDataSource有两个必须实现的方法,只要把这两个方法粘贴到代码中就不会了,后面的报错就不一一赘述原因了,这里的报错很多就是方法没有返回值或者没有实现代理引起的警告。
好,我们下面实现两个代理方法
func tableView(tableView:UITableView!, numberOfRowsInSection section:Int)
-> Int
{
return20;
}
// Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
// Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
func tableView(tableView:UITableView!, cellForRowAtIndexPath indexPath:NSIndexPath!)
-> UITableViewCell!
{
let cell = tableView .dequeueReusableCellWithIdentifier("cell", forIndexPath:
indexPath)as UITableViewCell
cell.textLabel.text =String(format:"%i",
indexPath.row+1)
return cell
}
这样就将这个简单的项目完成了,以上都是本人个人的一些想法实现,希望能给大家带来帮助吧。主要是为了帮助大家熟悉运用swift像以前用Objective-C编写代码的感觉吧。不足之处请大家指出,谢谢。
是在本文基础上修改和添加了一些东西
最近看了看网上关于swift的一些基础介绍,大部分都采用了storyboard的方式来设计界面。但是本人还是比较喜欢以纯代码的方式来写代码的,呵呵,和本人的习惯有关。所以在这里介绍一下怎么样基于swift语言用纯代码的方式来写一个小应用吧。
当前AppStore中还没有推出Xcode6的正式版本,只能去官网用开发者账号下载beta版本,同时Xcode6要求OS X版本在10.9.3以上版本,所以发现无法使用Xcode6的朋友先升级下系统吧。
现在开始打开Xcode6来创建一个新项目吧
选择Empty Application后点击next后再选择存储位置,这里就不赘述了,直接开始写代码吧
进入项目的时候只有一个AppDelegate.swift代码文件,和以前的ios项目中.h和.m文件实现一个类不同,swift语言将.h和.m中合并成了一个.swift来实现
那么我们现在先来创建一个试图控制器ViewController,为方便下一步给UIWindow设置根试图控制器
选择Cocoa Touch Class点击Next 继续
照着图选择继承的类和swift语言点击Next
此时将多出了一个ViewController.swift代码文件,进入这个代码文件将其init方法删除,记得必须删除,因为我们下面是用纯代码创建对象的,如果不删除这个nib初始化方法,下面在AppDelegate中创建的时候将会出错。
将
init(nibName nibNameOrNil:String?, bundle nibBundleOrNil:NSBundle?)
{
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
删除。
回到AppDelegate中开始写代码
func application(application:UIApplication, didFinishLaunchingWithOptions launchOptions:NSDictionary?)
-> Bool {
//创建试图控制器
var vc =ViewController()
//创建导航控制器,并设置其根试图控制器为vc
var nav =UINavigationController(rootViewController:vc);
self.window =UIWindow(frame:UIScreen.mainScreen().bounds)
// Override point for customization after application launch.
self.window!.backgroundColor =UIColor.whiteColor()
//设置UIWindow的根试图控制器
self.window!.rootViewController = nav;
self.window!.makeKeyAndVisible()
returntrue
}
这样就实现了纯代码的方式在swift基础上实现程序试图控制器的跳转了,接下来我们在试图控制器中添加并实现一个简单的tableview的使用
进入ViewController中
//创建tableview
var tableView :UITableView?
overridefunc viewDidLoad() {
super.viewDidLoad()
self.title ="MySwift"
setupViews()
// Do any additional setup after loading the view.
}
func setupViews()
{
//初始化tableview并设置frame
self.tableView =UITableView(frame:self.view!.frame)
//设置tableview的代理对象
self.tableView!.delegate =self
self.tableView!.dataSource =self
self.tableView!.registerClass(UITableViewCell.self,
forCellReuseIdentifier:"cell")
//将tableview添加到view试图上
self.view?.addSubview(self.tableView)
}
在这里要注意的是设置tableview的代理对象的时候会报错,其实就是因为没有在类中继承代理协议,这个和以前的警告不同直接报错了,我们在类中继承tableview的代理协议
class ViewController:UIViewController ,UITableViewDelegate ,UITableViewDataSource{
大家继续写的时候发现
self.tableView!.dataSource = self
这里仍然报错,原因是UITableViewDataSource有两个必须实现的方法,只要把这两个方法粘贴到代码中就不会了,后面的报错就不一一赘述原因了,这里的报错很多就是方法没有返回值或者没有实现代理引起的警告。
好,我们下面实现两个代理方法
func tableView(tableView:UITableView!, numberOfRowsInSection section:Int)
-> Int
{
return20;
}
// Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
// Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
func tableView(tableView:UITableView!, cellForRowAtIndexPath indexPath:NSIndexPath!)
-> UITableViewCell!
{
let cell = tableView .dequeueReusableCellWithIdentifier("cell", forIndexPath:
indexPath)as UITableViewCell
cell.textLabel.text =String(format:"%i",
indexPath.row+1)
return cell
}
这样就将这个简单的项目完成了,以上都是本人个人的一些想法实现,希望能给大家带来帮助吧。主要是为了帮助大家熟悉运用swift像以前用Objective-C编写代码的感觉吧。不足之处请大家指出,谢谢。
相关文章推荐
- swift第一个iOS项目 纯代码编程(续)
- iOS编程——Swift用代码为view添加各种圆角
- 我的第一个JDBC数据库编程代码
- Android 游戏编程之从零开始-----2.1创建第一个Andoroid项目+2.2剖析Android Project 结构
- iOS项目开发经验:【常用代码5】
- 第一个公司的iOS项目总结
- IOS项目常用代码
- 关于要做的网站的规划和成果.学编程到现在从来没有哪个礼拜七天里看了这么多代码,写了这么多代码,拿出这么多的小项目...暑假快结束了,不过都一切还来得及
- iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可!
- iOS项目开发经验:【常用代码3】
- iOS项目开发经验:【常用代码2】
- iOS项目的总代码行数的方法
- IOS的第一个项目
- ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
- ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
- iOS项目开发经验:【常用代码4】
- 让代码更美:10大编程字体(本人用的就是显示的第一个)
- IOS成长之路-第一个Hello World项目
- 你的第一个iOS应用(六) 排除错误和检查代码
- iOS项目开发经验:【常用代码7】