Swift学习
水桶前辈
爱旅行爱生活喜欢西藏的蓝天白云
展开
-
swift 弹幕碰撞检测
本篇是swift版本的弹幕,原理同我的上篇OC版本的弹幕检测ios 弹幕 网上找了好多弹幕demo,发现很多都会重叠,体验很不好。所以在参考部分网上弹幕源码的基础上,遂有了本篇弹幕碰撞检测。本弹幕优点如下(这个是最初版本,以后慢慢优化):一. 可以很好的避免弹幕间的碰撞其实针对碰撞,主要解决水平运动时,前后两个弹幕不碰撞就可以了。所以我们主要针对同一个轨原创 2017-11-06 15:57:16 · 648 阅读 · 0 评论 -
swift3.0 Kingfisher图片库 重点源码分析
1. data 根据url这个key存储在 fetchLoads中// A single key may have multiple callbacks. Only download once. func setup(progressBlock: ImageDownloaderProgressBlock?, with completionHandler: ImageDownloader原创 2017-07-06 16:59:37 · 1439 阅读 · 0 评论 -
swift3.0 文件操作
//存储图片的文件夹var ljFilePath:String =NSHomeDirectory() +"/Documents/" +"LJImageCache/" /// 写文件 /// /// - Parameters: /// - fileName: 文件名称 /// - data: 数据data /// - Ret原创 2017-07-15 22:39:06 · 960 阅读 · 0 评论 -
swift 学习资料大全
版本:Swiftgithub排名 https://github.com/trending,github搜索:https://github.com/search主要工作说明: 1. 将Swift从Objective-C混合的md文件中抽出(正在进行…)使用方法:根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性。问题反馈:请广大网友只按照目录结构(即原创 2017-07-15 18:22:50 · 3995 阅读 · 0 评论 -
swift3.0 可选绑定共用同一块内存空间
ljTempModel = UserModel.init(userName: "sww", userID: 12, phone: "123", email: "deew") ljTempModel?.ljArray.append("sww") print("可选绑定前:\(ljTempModel?.ljArray)") //可选绑定原创 2017-07-06 17:38:34 · 273 阅读 · 0 评论 -
swift3.0 类字符串转类(字符串转ViewController)
//MARK: -- 根据类文件字符串转换为ViewControllerextension ThirdViewController{ /// 类文件字符串转换为ViewController /// - Parameter childControllerName: VC的字符串 /// - Returns: ViewController func getV原创 2017-07-06 10:04:00 · 915 阅读 · 0 评论 -
swift 网络----利用URLSession的Data Task下载单张图片(包含图片的增量下载)
wang luoimport Foundationimport UIKitpublic typealias SwiftClosure = ((_ data:Data? , _ progressValue:Float, _ error: Error?) -> Void)class LJSessionRequestManager: NSObject{ /**原创 2017-07-05 14:44:02 · 2409 阅读 · 0 评论 -
swift 网络----利用URLSession的Download Task模式下载多张图片
下载类import Foundationimport UIKit//定义一个传图片数据的闭包public typealias SwiftClosure = ((_ data:Data? , _ error: Error?) -> Void)class LJSessionRequestManager: NSObject{ /** * 定义闭包属性,可选类型原创 2017-07-04 23:10:15 · 1394 阅读 · 0 评论 -
swift3.0 避免循环引用
//避免循环引用,weak当对象销毁的时候,对象会被指定为nil //weak var weakSelf = self //对象推到,省略了ViewController weak var weakSelf : FirstViewController? = self //等同与上面的表达式 ljload?.loadData({ (j原创 2017-07-05 14:51:48 · 250 阅读 · 0 评论 -
swift 网络----利用URLSession的Block模式下载多张图片
先上效果图再上源码1. 对于URLSession做了个简单的封装,用来请求网络数据import Foundationclass LJDownLoadNetImage: NSObject { static func request(_ method: String, url: String, callback: @escaping (_ data: Data原创 2017-07-01 23:17:40 · 862 阅读 · 0 评论 -
swift基础回顾 (二)
//: Playground - noun: a place where people can playimport UIKit/* 5. 类型推导 1> 如果在定义一个标识符时,有直接给该标识符进行赋值,那么可以将标识符后面的类型省略掉 2> 编译器会根据我们后面赋值的类型,推导出前面标识符的类型,这个过程就叫做类型推导 3> 可以通过 option + 鼠标左原创 2017-06-25 22:58:20 · 475 阅读 · 0 评论 -
swift 基础学习回顾(一)
//: Playground - noun: a place where people can play//导入框架,直接导入,省了好多代码import UIKit//Playground 所见即所得,一写完就展示出来了,练习swift语法用var str = "Hello, playground"/* Java,C:命令式编程语言原创 2017-06-25 21:08:40 · 439 阅读 · 0 评论 -
swift3.0 简单的网络图片缓存原理
一. 缓存原理图片缓存原理原理是,如内存没图片,去磁盘找,若磁盘也没有,则根据url去下载,然后缓存到内存和磁盘中,简单易用缓存的目录结构如下图: //存储图片的文件夹 var ljFilePath:String = NSHomeDirectory() +"/Documents/" +"LJImageCache/" 二. 图片名称处理为了确原创 2017-07-16 10:51:06 · 1697 阅读 · 0 评论 -
swift3.0 MD5加密源码
因为MD5加密是不可逆的,所以一般只有MD5加密的算法,而没有MD5解密的算法。创建一个Sting+MD5.Swift字符串分类文件(同时此处需要创建一个bridge.h桥接文件,引入这个头文件#import ,md5加密方法需要使用的文件)1.bridge.h桥接文件如下:#ifndef bridge_h #define bridge_h #import原创 2017-07-16 13:44:31 · 1707 阅读 · 0 评论 -
swift3.0 图片放大缩小动画效果
1. 此处写了三个class(LJPhotoGroupView:图片浏览管理类 LJPhotoView:)import Foundationimport UIKitclass LJPhotoGroupView: UIView { let baseIndex = 1000 var originFrame : CGRect? // 图片的源尺寸原创 2017-09-14 13:44:29 · 4867 阅读 · 10 评论 -
swift 3.0 打印宏设置
//打印宏#if DEBUG public let CHDebugLog = { (items: Any...) in print(items)}#else public let CHDebugLog = { (items: Any...) in }#endif在xcode中设置debug模式下开启打印宏,如下图原创 2017-09-13 19:09:39 · 518 阅读 · 0 评论 -
swift model 解析的两种方法
1. 常规解析方法 //懒加载声明一个LJNewsModel为数据的数组 lazyvar ljArray : [LJNewsModel] = [LJNewsModel]()//MARK:-- 数据获取和解析extension NewsViewController{ func requestNetData(){ /* 打原创 2017-08-27 20:21:06 · 4188 阅读 · 0 评论 -
swift3.0 析构函数
swift 中的析构函数,类似与OC中的dealloc函数,类似于c++ 中的析构函数 class deallocPerson{ var name : String = "" var age : Int = 0 //重写析构函数,监听对象的销毁 deinit { print("deallocPerson ---deinit ")原创 2017-07-09 21:18:23 · 368 阅读 · 0 评论 -
swift 3.0 类的构造函数
/* //类的构造函数 使用KVC条件 1> 必须继承自NSObject 2> 必须在构造函数中,先调用super.init(0 3> 调用setValueForKeys 4> 如果字典中某一个key没有对应的属性,则需要重写setValueForKeys方法 */class LJPerson : NSObject{ var name : String = ""原创 2017-07-09 20:56:52 · 291 阅读 · 0 评论 -
Swift中的willSet与didSet
在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化无需说太多,看看下面的代码你就能很快明白的import Foundationclass People : NSObject{ //普通属性 var firstName:String = "" var lastName:String = ""转载 2017-07-04 14:11:10 · 277 阅读 · 0 评论 -
swift3.0 类的基本使用
//类的基本使用//1. 创建类class Student{ //类的属性定义 // 存储属性: 用于存储实例的变量&常量 var name : String = "" var age : Int = 0 var mathScore : Double = 0.0 var chineseScore : Double = 0.0 //计算原创 2017-07-09 19:36:27 · 234 阅读 · 0 评论 -
swift3.0 元组简单学习
//元组//1.使用元组保存信息let infoTuple = ("why",18,1.08)let tupleName = infoTuple.0let tupleAge = infoTuple.1print(tupleName.characters.count)//写法二//别名let infoTuple1 = (name:"why" , age:18 ,height:1.08原创 2017-07-09 16:52:06 · 207 阅读 · 0 评论 -
swift 3.0 字典简单学习
//1.如何定义字典 //1> 定义不可变字典:使用let修饰 //编译器会根据[]中每一个元素(数组),还是健值队(字典) //写法一 let dict3 : Dictionary = ["sww": 123,"frg":"911"] //写法二 let dict2 = ["sww": 123,"frg":"911"] as原创 2017-07-09 16:23:41 · 289 阅读 · 0 评论 -
swift 利用Opration和OprationQueue来下载网络图片
1. 基于Opration封装的获取网络数据组件import Foundationimport UIKitpublic typealias OpreationClosure = ((_ data:Data? , _ error: Error?) -> Void)class LJOpreationManager: Operation { /** *原创 2017-07-08 21:55:17 · 509 阅读 · 0 评论 -
swift 懒加载
一个VC上放了一个按钮,然后点击按钮打印刚刚定义的懒加载对象names,按理说“--------------”应该只打印一次。 /* 用到时再加载 多次使用只加载一次 */ lazy var names :[String] = { let names = ["why", "lmj", "swd"] print("-原创 2017-07-03 21:57:51 · 561 阅读 · 0 评论 -
swift 枚举类型
//1.枚举类型enum MethodType :String{ case get = "get" case post = "post" case put = "put" case delete = "delete"}//2.创建枚举let type1 : MethodType = .getlet type2 = MethodType.post原创 2017-07-03 23:10:29 · 363 阅读 · 0 评论 -
swift 访问权限
import UIKit/* 1>internal :内部的, 1.默认情况下所有的类的属性&方法的访问权限都是internal 2.若本模块(项目/包/target)中可以访问 2> private:私有的 1.只有在本类中可以访问 3> open 公开的 1.可以跨模块(包/target)都是可以访问的 4> fileprivate swi原创 2017-07-03 22:22:34 · 995 阅读 · 0 评论 -
swift TabBar
先上效果图如下:1. 在APP 的AppDelegate页面中加载TFTabBarViewController类 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {原创 2016-05-07 17:57:53 · 1422 阅读 · 0 评论 -
Swift 有哪些优秀的第三方库?
点击打开链接原创 2016-05-07 17:26:52 · 389 阅读 · 0 评论 -
swift 数组和字典保存到文件中
1.保存数组到文件中 //MARK:1,数组(Array)的存储和读取 func testSaveArrayPlist() { let arry = NSArray(objects: "stev","baidu.com","com","12344","robinson") let filePath:String = NSHomeDirectory() +原创 2016-05-11 09:28:30 · 6134 阅读 · 0 评论 -
swift UISlider
func testUISlider() { let slider = UISlider(frame: CGRectMake(0, 70, 300,40)) slider.center = self.view.center slider.minimumValue = 0 slider.maximumValue = 1原创 2016-05-10 10:39:21 · 371 阅读 · 0 评论 -
swift 底部警告框
//底部警告框 func testUIActionSheet() { let actionSheet = UIActionSheet() actionSheet.addButtonWithTitle("取消") actionSheet.addButtonWithTitle("确定") actionSheet.addBut原创 2016-05-10 10:16:33 · 514 阅读 · 0 评论 -
swift 拨打电话
//自动打开拨号页面并自动拨打电话 func callClicked(sender: UIButton) { UIApplication.sharedApplication().openURL(NSURL(string: "tel://10086")!) }原创 2016-05-10 10:02:58 · 1905 阅读 · 0 评论 -
Swift 基本控件UIAlertView学习
let alertView = UIAlertView() alertView.title = "系统提示" alertView.message = "您确定要离开hangge.com吗?" alertView.addButtonWithTitle("取消") alertView.addButtonWithTitle("确定")原创 2016-02-23 10:46:04 · 508 阅读 · 0 评论 -
Swift 基本控件UISlider学习
// @name create UISliderlet slider = UISlider(frame: CGRectMake(30, 200 + 130, 60, 30))slider.addTarget(self, action: "clickSlider:", forControlEvents: .ValueChanged)slider.minimumValue = 17.0slid原创 2016-02-23 10:19:26 · 447 阅读 · 0 评论 -
swift 中的delegate 写法
1. 声明// this delegate needs a @objc, because @optional is only for objective-c, not for swift@objc protocol DetailViewControllerDelegate : NSObjectProtocol { optional func changeItem(forUserMode原创 2016-02-23 10:00:08 · 2822 阅读 · 0 评论 -
Swift UI学习之UITableView and protocol use
http://blog.csdn.net/woaifen3344/article/details/29883183Models: UserModel.swiftViews: UserInfoCell.swiftControllers: RootViewController.swift, DetailViewController.swiftAppD转载 2016-02-22 16:33:00 · 398 阅读 · 0 评论 -
Swift UI学习之基础:UIButton,UILabel and UISlider
// http://blog.csdn.net/woaifen3344/article/details/29840275 // RootViewController.swift // UIDemos // // Created by sixiaobo on 14-6-10. // Copyright (c) 2014年 com.huangyibiao. All r转载 2016-02-22 15:29:29 · 534 阅读 · 0 评论 -
swift 基础学习一
1. 利用NSUserDefaults存储用户名和密码(1)获取用户名和密码 userTextFeild.text = NSUserDefaults.standardUserDefaults().valueForKey("userName") as! String! passWordTextFeild.text = NSUserDefaults.standardUserDe原创 2016-05-09 16:27:50 · 428 阅读 · 0 评论 -
Swift UITableView 学习
源码如下:import UIKitclass TFNetImageViewController: TFBaseViewController, UITableViewDataSource, UITableViewDelegate{ var TFTableView:UITableView! var itemString = ["姓名","账号","爱好","职业","年薪"]原创 2016-05-09 16:56:25 · 430 阅读 · 0 评论