iOS学习—Swift
学习笔记666
这个作者很懒,什么都没留下…
展开
-
Swift中的闭包
Swift中的闭包和OC中的block非常相似 OC中的block是匿名的函数; Swift中的闭包是一个特殊的函数; block和闭包都经常用于回调先学习Swift的闭包,必须先搞清楚OC中的block同样写一个网络请求工具类// HttpTool.swiftimport UIKitclass HttpTool: NSObject { var callBack: ((jsonDat原创 2016-09-18 18:12:31 · 321 阅读 · 0 评论 -
Swift - 网页控件(UIWebView)加载本地数据,文件
使用UIWebView加载本地数据或资源有如下三种方式: 1,使用 loadHTMLString 方法加载HTML内容 2,使用 loadRequest 方法加载本地资源(也可用于加载服务器资源) 3,先将内容保存成 NSData 数据,再使用 loadData 方法加载使用样例 通过 UISegmentedControl 分别控制网页控件“显示HTML”“显示PDF”“loadData显示原创 2016-07-04 16:41:57 · 4247 阅读 · 0 评论 -
Swift - 文件,文件夹操作大全
ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现。 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件// 假设用户文档(DocumentDirectory)下有如下文件和文件夹[test1.txt, fold1/test2.txt] let manager = NSFileManage转载 2016-07-01 17:11:09 · 2944 阅读 · 0 评论 -
Swift - 选择框(UIPickerView)的用法
import UIKitclass ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { var pickerView:UIPickerView! override func viewDidLoad() { super.viewDidLoad() //原创 2016-06-25 15:19:51 · 4583 阅读 · 0 评论 -
Swift - 警告提示框(UIAlertController)的用法
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {原创 2016-06-25 13:46:39 · 6207 阅读 · 1 评论 -
Swift - 图像控件(UIImageView)的用法
// 使用图像控件显示图片 let imageView = UIImageView(image: UIImage(named: "Checkpage_answer_icon")) imageView.frame = CGRectMake(10, 10, 100, 100) self.view.addSubview(imageView) /原创 2016-06-25 12:29:58 · 1390 阅读 · 0 评论 -
Swift - 分段选择控件(UISegmentedControl)的用法
import UIKitclass ViewController: UIViewController { // 注意:后面方法中用到控件,所以必须成为成员变量 var segmented:UISegmentedControl! override func viewDidLoad() { super.viewDidLoad() // 选项原创 2016-06-25 11:49:53 · 1093 阅读 · 0 评论 -
Swift - 开关按钮(UISwitch)的用法
import UIKitclass ViewController: UIViewController { var switchBtn:UISwitch! override func viewDidLoad() { super.viewDidLoad() // 创建UISwitch开关 switchBtn = UISwitch()原创 2016-06-25 09:00:42 · 3252 阅读 · 0 评论 -
Swift - 多行文本输入框(UITextView)的用法
// 多行文本控件 的创建 let textView = UITextView(frame: CGRectMake(10, 100, 200, 100)) textView.layer.borderWidth = 1 // 边框粗细 textView.layer.borderColor = UIColor.grayColor().CGColor //原创 2016-06-25 08:59:21 · 2323 阅读 · 0 评论 -
Swift - 文本输入框(UITextField)的用法
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 创建文本框 let textField = UITextField(frame: CGRectMake(10,100,200,30))原创 2016-06-24 15:15:54 · 804 阅读 · 0 评论 -
Swift - 按钮(UIButton)的用法
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 创建一个ContactAdd类型的按钮 let button = UIButton(type: .ContactAdd)原创 2016-06-24 11:53:31 · 1629 阅读 · 0 评论 -
Swift - 文本标签(UILabel)的用法
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 创建UILabel let label = UILabel(frame: CGRectMake(10,20,300,100))原创 2016-06-24 09:54:53 · 676 阅读 · 0 评论 -
Swift - 协议(protocol)
//: Playground - noun: a place where people can playimport UIKit//var str = "Hello, playground"// 1.Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名、返回值、参数等信息,而没有具体的方法实现protocol Person { // 读写属性 var name:原创 2016-06-24 09:19:04 · 464 阅读 · 0 评论 -
Swift - 类扩展(extension)
//: Playground - noun: a place where people can playimport UIKit//var str = "Hello, playground"/* Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如下事情: 1.给已有的类添加计算属性和计算静态属性 2.定义新的实例方法和类方法 3.提供新的构造器 4.定义下标脚本 5.是一个原创 2016-06-24 09:07:33 · 492 阅读 · 0 评论 -
Swift里通知的使用NSNotificationCenter
1.控制器viewDidLoad方法里注册通知override func viewDidLoad() { super.viewDidLoad() // 3.注册通知,监听菜单 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(HomeTableViewCo原创 2016-03-28 20:56:07 · 4467 阅读 · 0 评论 -
Swift - 自定义函数规则说明
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"// 【自定义函数规则说明】// 1.无返回值的函数func test(name: String){}// 2.返回一个返回值func test2(name: String) -> Bool { re原创 2016-06-23 15:27:40 · 440 阅读 · 0 评论 -
Swift - 类初始化和反初始化方法(init与deinit)
//: Playground - noun: a place where people can play// 1. init() 类的初始化(构造方法)// 使用默认的构造函数class Student { // 类属性 var name:String = "" var number: Int = 0}var student = Student()// 自定义构造函数原创 2016-06-23 15:37:17 · 2374 阅读 · 0 评论 -
Block的回顾
Block最常见的就是网络请求中,我们先写一个网络请求的类HttpTool.h#import <Foundation/Foundation.h>@interface HttpTool : NSObject-(void)loadData:(void(^)(NSString *jsonData))callBack;@endHttpTool.m#import "HttpTool.h"@implem原创 2016-09-18 14:03:31 · 349 阅读 · 0 评论 -
Swift自定义类的构造函数
类的构造函数介绍 构造函数类似于OC中的初始化方法:init 默认请情况下实例化一个类时,比如会调用一个初始化函数 即便没有编写任何构造函数,编译器也会提供一个默认的构造函数 如果是继承自NSObject的类,可以对父类的构造函数进行重写构造函数的基本使用 类的属性必须有值; 如果不是在定义时初始化值,可以在改造函数中赋值1.重写//: Playground - noun: a plac原创 2016-09-16 21:59:38 · 1344 阅读 · 0 评论 -
Swift类的属性监听器
监听属性的改变 在OC中我们可以重写set方法来监听属性的改变; 在Swift中可以通过属性观察者来监听和响应属性值的变化; 通常是监听存储属性和类属性的改变(对于计算属性,我不需要定义属性观察者,因为我们可以在计算属性的setter中直接观察并响应这种值的变化)。//: Playground - noun: a place where people can playimport UIKitc原创 2016-09-16 21:08:20 · 2242 阅读 · 0 评论 -
Swift类属性定义
Swift中类的属性有多种 存储属性:存储实例的常量和变量 计算属性:通过某种方式计算出来的属性 类属性:与整个类自身相关的属性一、存储属性存储属性是最简单的属性,它作为类实例的一部分,用于存储常量和变量; 可以给存储属性提供一个默认值,也可以在初始化中个对其进行初始化。 下面是存储属性的写法://: Playground - noun: a place where people can原创 2016-09-16 20:48:18 · 5235 阅读 · 0 评论 -
Swift函数 - 指针类型
var m = 10var n = 20func swapNum(var m:Int, var n:Int){ let tmp = m m = n n = tmp}swapNum(m, n: n)print("m=\(m),n=\(n)") //"m=10,n=20\n"最后m和n的值根本没有交换,这是因为函数默认是值传递// 指针类型var m = 10var原创 2016-09-12 21:07:03 · 737 阅读 · 0 评论 -
Swift函数 - 可变参数
func sum(num:Int...)->Int{ var result = 0 for n in num{ result += n } return result}sum(10,20)sum(10,20,30)注意参数里的”…”, 这样调用函数的时候,可以传入任意多个参数。原创 2016-09-12 20:58:44 · 1379 阅读 · 0 评论 -
Swift函数 - 默认参数
func makeCoffee(coffeeName:String) -> String{ return "制作了一杯\(coffeeName)咖啡"}makeCoffee("拿铁")上面函数必须传入参数。// 默认参数func makeCoffee(coffeeName:String = "雀巢") -> String{ return "制作了一杯\(coffeeName)咖原创 2016-09-12 20:53:14 · 2843 阅读 · 0 评论 -
函数参数 - 内部参数和外部参数的概念
func sum(num1:Int, num2:Int) -> Int{ return num1 + num2}sum(10, num2: 20)函数调用的时候可以发现默认第一个参数没有参数名,即默认第一个不是外部参数。那么如何做到都有参数名的提示呢?func sum2(num1 num1:Int, num2:Int) -> Int { return num1 + num2}原创 2016-09-12 20:46:32 · 1924 阅读 · 0 评论 -
HTML中调用Api
/** webView的代理方法 */ func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { // 1.取出请求字符串 let原创 2016-08-04 09:35:13 · 17095 阅读 · 0 评论 -
添加全局的css样式
// 加载css的URL路径 let css = NSBundle.mainBundle().URLForResource("newsDetail", withExtension: "css") // 创建css的HTML标签 let cssHtml = "<link href='\(css)'>" // 拼接HTML原创 2016-08-03 17:03:52 · 1908 阅读 · 0 评论 -
拼接html,显示到webView中
//// ViewController.swift// 网易新闻详情页(UIWebView)import UIKitclass ViewController: UIViewController { @IBOutlet weak var webView: UIWebView! override func viewDidLoad() { super.viewDid原创 2016-08-03 16:58:28 · 3575 阅读 · 0 评论 -
Swift - 类的计算属性(使用get和set来间接获取/改变其他属性的值)
//: Playground - noun: a place where people can play// 1.Swift中类可以使用 计算属性,即使用get和set来间接获取/改变其他属性的值class Calcuator { var a:Int = 1 var b:Int = 1 var sum:Int { get{ return原创 2016-06-23 16:33:04 · 780 阅读 · 0 评论 -
Swift - 类型属性(类静态属性)和类方法(类静态方法)
// 1.结构体struct和枚举enum的静态属性,静态方法使用static关键字struct Account { var amount:Double = 0.0 //账户金额 var owner:String = "" //账户名 static var interestRate:Double = 0.66原创 2016-06-23 16:18:42 · 2132 阅读 · 0 评论 -
Swift - 属性观察者(willSet与didSet)
//: Playground - noun: a place where people can play//import UIKit////var str = "Hello, playground"/* 属性观察者,类似于触发器。用来监视属性的初始化之外的属性值变化,当属性值发生改变时可以对此做出响应。有如下特点 1.不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willS原创 2016-06-23 15:57:19 · 750 阅读 · 0 评论 -
Swift的数组
//: Playground - noun: a place where people can playimport UIKit/* 定义数组 OC里: NSArray *arr = @[@1,@2,@3]; NSAarray *arr2 = [NSArray arrayWithObjects:@1,@2,@3,nil]; OC里的空数组: NSArray *arr3原创 2016-03-28 15:16:25 · 429 阅读 · 0 评论 -
Swift里自定义一个文字在左、图片在右的,标题按钮
//// TitleButton.swiftimport UIKitclass TitleButton: UIButton { override init(frame: CGRect) { super.init(frame: frame) setTitleColor(UIColor.darkGrayColor(), forState: UIControlSt原创 2016-03-27 19:49:58 · 2945 阅读 · 0 评论 -
字典
//: Playground - noun: a place where people can playimport UIKit// 创建字典/* Swift中创建字典和创建数组一样,用[] */let dict = ["name":"jack","age":30]// 获取值dict["name"]// 遍历字典for key in dict.keys{ print(dic原创 2016-03-24 20:28:29 · 280 阅读 · 0 评论 -
三目运算、可选类型
//: Playground - noun: a place where people can playimport UIKitlet num = 10if num == 5{ print("5")}else{ print("10")}/* 在OC中,if else 可以使用三目运算符来简写 注意:在做Swift开发中三目运算符用得频率非常高 */let res =原创 2016-03-24 20:13:48 · 519 阅读 · 0 评论 -
for、while
//: Playground - noun: a place where people can playimport UIKit// 普通for循环,和OC基本一致// 0~9for var i = 0; i < 10; i++{ print(i)}// Swift 特色循环// 0..<10 代表一个区间,从0开始到10,不包含10for i in 0 ..< 10{原创 2016-03-24 19:52:52 · 383 阅读 · 0 评论 -
if、switch
//: Playground - noun: a place where people can playimport UIKit/* Swift中的if的使用方法和OC『基本』一致 在C和OC中,非0即真; 但在Swift中,条件只能放bool值,取值只有2个:ture/false */let num = 10if num == 10{ print("ok");}// 这里并不会原创 2016-03-24 19:38:13 · 350 阅读 · 0 评论 -
数据类型转换
//: Playground - noun: a place where people can playimport UIKit/* Swift中不存在隐式类型转换,所有的类型转换都必须是显式的 */let num1 = 10let num2 = 9.9let intSum = num1 + Int(num2)let doubleSum = Double(num1) + num2// 明确原创 2016-03-24 19:24:14 · 261 阅读 · 0 评论 -
常量和变量
//: Playground - noun: a place where people can playimport UIKit/* let 代表定义一个常量 var 代表定义一个变量 Swift中定义常量和变量不需要写数据类型,编译器会根据我们后面的数据的真实类型推导 */// 开发技巧:在做Swift开发中,我们需要经常使用option键+左键来查看方法或者变量// 常量let num原创 2016-03-23 22:35:35 · 273 阅读 · 0 评论 -
Swift初步体验
//: Playground - noun: a place where people can playimport UIKit/* 创建对象: OC: alloc/initWithXXX Swfit: (xxx:) 调用方法 OC: [UIColor redColor]; Swift: UIColor.redColor() */let view原创 2016-03-23 22:23:17 · 349 阅读 · 0 评论