[iOS]
hpuhjl
这个作者很懒,什么都没留下…
展开
-
iOS蓝牙开发 - BLE(蓝牙4.0)
设备:中心设备(CBCentralManager):iOS系统的手机等设备外围设备(CBPeripheral):手环等第三方设备外围设备:服务: 外围设备下的子信息, 每个服务有一个UUID标示.特征:服务下的子信息, 每个特征也有一个UUID标示.特征是外围设备的最小单位,每一个特征信息代表设备的一个信息或者数据, 以手环为例, 每一个特征可能代表手环记录的步数或者电量等信息.实现步骤原创 2018-06-15 09:49:10 · 2666 阅读 · 0 评论 -
封装网络请求类来理解闭包
import UIKitimport Alamofireenum MethodType { case get case post}class NetworkTools { class func requestData(_ type : MethodType, URLString : String, parameters : [String : Any]? = nil,原创 2018-06-17 08:59:33 · 1828 阅读 · 0 评论 -
iOS设置和获取二维码扫描
//// Copyright © 2016年 hjl. All rights reserved.//#import "HHQrcodeController.h"#import <AVFoundation/AVFoundation.h>@interface HHQrcodeViewController () <AVCaptureMetadataOutputObjectsDelegate>/**原创 2018-06-17 08:58:29 · 2265 阅读 · 0 评论 -
Swift访问权限
1> internal : 内部的1. 默认情况下所有的类&属性&方法的访问权限都是internal2. 在本模块(项目/包/target)中可以访问2> private : 私有的1. 只有在本类中可以访问3> open : 公开的1. 可以跨模块(项目/包/target)都是可以访问4> fileprivate : Swift3.01. 只要是在本文件中都是可以进行访问原创 2018-06-17 08:56:57 · 3567 阅读 · 0 评论 -
swift - 循环引用问题
// 1.创建类class Person { var name : String = "" var book : Book? deinit { print("Person -- deinit") }}class Book { var price : Double = 0 /* OC中表示弱引用 __weak/原创 2018-06-17 08:50:31 · 2061 阅读 · 0 评论 -
iOS - 清理缓存
// 显示缓存大小func fileSizeOfCache()-> Int { // 1. 取出cache文件夹目录 缓存文件都在这个目录下 let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPat原创 2018-06-17 08:48:18 · 3016 阅读 · 0 评论 -
iOS设置和获取条形码
//// Copyright © 2016年 hjl. All rights reserved.//#import "HHBarcodeViewController.h"#import <AVFoundation/AVFoundation.h>@interface HHBarcodeViewController ()/** 会话 */@property (nonatomic, stron原创 2018-06-17 08:47:48 · 3620 阅读 · 0 评论 -
iOS - 通知
// 创建通知的两种形式//[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#>]//[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#> userInfo:原创 2018-06-17 08:47:23 · 3140 阅读 · 0 评论 -
Swift-轮播图
轮播图实现方式UICollectView (推荐)UIScrollView (需要手动实现cell重用问题)第三方框架步骤1 创建CollectView freamlayouaddSubViewautoreszingMask(不随父控件拉伸而拉伸) collectionView.autoresizingMask = UIViewAutoresizing()2 创建布局layou原创 2018-06-15 09:53:14 · 2442 阅读 · 0 评论 -
类属性的监听
class Person { var name : String = "" { // 属性监听器: 选中其中之一即可 // 监听属性即将发生改变: 还没有改变 willSet { print(newValue) print(name) } // 监听属性已经发生改变:原创 2018-06-15 09:52:56 · 2186 阅读 · 0 评论 -
Swift - 类扩展, 添加属性
类扩展, 为类添加属性如代码所示, 创建属性, 并实现set和get方法利用OC的runtime特性private var kHJRefreshHeaderKey: String = ""/// header var hj_header: HJRefreshHeaderView? { get { return (objc_getAssociat原创 2018-06-15 09:52:36 · 8335 阅读 · 0 评论 -
Swift - 属性监听器
属性监听器介绍: 属性监听器, 监听属性的值改变, 就像按钮的点击事件一样来监听其他的值改变举例: 监听scrollView的contentOffset属性的改变/// 为scrollView的contentOffset属性, 添加一个监听者scrollView.addObserver(self, forKeyPath: contentOffset, options: .new, conte原创 2018-06-15 09:52:18 · 2813 阅读 · 0 评论 -
Swift - 常用的扩展
UIScrollView-Extensionextension UIScrollView { var hh_insetT : CGFloat { get { return contentInset.top } set(newVal) { var inset = contentInset原创 2018-06-15 09:52:00 · 2105 阅读 · 0 评论 -
Swift3.0 - sha1加密算法
注意: 需要创建OC桥接文件, Bridging-Header.h #import <CommonCrypto/CommonHMAC.h>extension String { //sha1加密算法 func sha1() -> String{ let data : Data = self.data(using: String.Encoding.utf8, allow原创 2018-06-15 09:51:40 · 2185 阅读 · 0 评论 -
swift - tableView的fream, contentInset, contentOffset, contentSize等属性
fream类型: CGReckx: 相对于父控件, 在父控件中的坐标x值y: 相对于父控件, 在父控件中的坐标y值height: 自己的高度width: 自己的宽度contentOffset类型: CGPointx: 相对于自己, 自己的内容在x轴的偏移量y: 相对于自己, 自己的内容在y轴的偏移量contentInset在内容周围添加额外的滚动区域类型: UIEdgeIns原创 2018-06-15 09:51:13 · 3783 阅读 · 0 评论 -
Swift - 贝赛尔曲线
override func draw(_ rect: CGRect) { /// 贝塞尔曲线 let bezierPath : UIBezierPath = UIBezierPath() bezierPath.move(to: self.startPoint) bezierPath.addLine(to: self.endPoint)原创 2018-06-15 09:50:51 · 2622 阅读 · 0 评论 -
Swift3.0 多线程 - 延时操作
延时执行DispatchQueue.main.asyncAfter(deadline: .now() + TimeInterval(3)) {}原创 2018-06-15 09:50:19 · 3237 阅读 · 1 评论 -
类的析构函数
class Person { var name : String = &quot;&quot; var age : Int = 0 // 重写析构函数, 监听对象的销毁 deinit { print(&quot;Person --- deinit&quot;) }}var p : Person? = Person()p = nil原创 2018-06-18 15:17:43 · 1816 阅读 · 0 评论