Swift
Micah_A
to be a better swifter
展开
-
Swift 闭包页面传值
视图1代码:import UIKitclass ViewController: UIViewController { overridefunc viewDidLoad() { super.viewDidLoad() self.view.backgroundColor =UIColor.w原创 2016-04-19 18:25:06 · 494 阅读 · 0 评论 -
Swift 使用SnapKit实现 UICollectionViewCell 高度自适应
问题在我们的日常开发中,经常会使用到UICollectionViewCell、UITableViewCell的自适应。解决方案之前的MVC开发中,使用SnapKit 处理UICollectionViewCell 高度自适应的问题后,一直想抽时间整理一下,下面就用部分的代码,解释一下 我这边处理的思路。Controller//// TaskVC.swift// BossClient////原创 2017-12-19 11:32:38 · 7063 阅读 · 0 评论 -
cocoapods 搜索不到最新版的第三方库
cocoapods搜索不到最新的第三库,一般有可能是缓存的问题我们可以使用:pod repo update更新本地的缓存。 但是有时候,更新了却还是不行,那我们就pod cache clean --allrm -rf ~/Library/Caches/CocoaPodspod repo update清除所有的缓存,重新建立索引。 此时重新搜索就可以了。原创 2018-01-05 22:12:04 · 4707 阅读 · 0 评论 -
Swift SDK 开发详解
前言日常的开发中,我们经常会遇到这样的开发需求。比如 不能提供源码,暴露部分接口出去、 项目功能组件模块化等。这个时候,我们一般就想到了sdk开发。在OC的开发中,我们涉及到的一般是静态库(.a)或者动态库(.framework)。(注:不是所有的.framework就一定是动态库)。之前,使用OC尝试过SDk的开发,感觉还是比较繁琐,接下来我们就使用Swift进行SDK开发。开发原创 2018-01-16 20:59:31 · 6653 阅读 · 0 评论 -
Moya+ RxSwift+HandyJSON 优雅处理网络请求
前言在移动端的开发中,网络请求是必不可少的。之前写过Alamofire的简单使用,但是一般开发中都会对这些第三库封装,然后使用,之前自己封装的demo也是借鉴了一些Moya的设计思路。今天就介绍一下Moya一个帮助你处理网络层的第三方框架。介绍MoyaMoya是一个帮助我们管理Alamofire的网络管理层,可以让我们去更清晰的去管理我们的网络请求。Moya的版本 VS Sw原创 2018-01-26 22:45:19 · 11069 阅读 · 1 评论 -
Generic type 'Result' specialized with too many type parameters
问题:在同时使用Alamofire和Result 因为定义的Result 重复 ,会报错Generic type ‘Result’ specialized with too many type parameters 解决方式: 将import Result 替换为 import enum Result.Result 即import enum Result.Result//import原创 2018-01-26 22:53:52 · 2449 阅读 · 0 评论 -
Swift 之 Alamofire 网络请求、取消请求
前言Alamofire是一个使用Swift开发的网络请求库,其开发团队是AFNetworking的原团队。它语法简洁,采用链式编程的思想,使用起来是相当的舒服。本质是基于NSURLSession进行封装。接下开我们就进入实战,开始学习Alamofire的使用。本篇主要简介Alamofire的基础使用,如果您对Alamofire的封装库Moya也感兴趣可移步Moya+ RxSwift+Handy原创 2017-08-19 23:46:39 · 18162 阅读 · 0 评论 -
Swift class_copyMethodList class_copyPropertyList
代码实例: /// 获取并打印方法 var m_count:UInt32 = 0; if let methods = class_copyMethodList(type(of: self.app), &m_count){ debugPrint(methods[0]); for i in 0..<...原创 2018-03-23 09:04:14 · 850 阅读 · 0 评论 -
Swift 4.0 获取对象的类名
/// 获取类型type(of: router.rootVC)/// 获取类型 stringtype(of: router.rootVC).description()type(of: router.rootVC).description().components(separatedBy: ".")[1];提取一下代码extension NSObject{ // ...原创 2018-04-02 16:41:53 · 8411 阅读 · 0 评论 -
Command failed due to signal: Segmentation fault: 11
问题: 在swift 中 从string 转换到 对象,然后一直报错。 语法上并没有什么错误的提示,就是编译过不了。代码实例:/// 这行代码在编译的时候一直过不去 vc = clsName!.currentClass!.init() as? UIViewController/// 处理方式 Swift是强类型语言 所以中间加一层转换即可 let classtype...原创 2018-04-03 16:43:08 · 955 阅读 · 0 评论 -
Swift NSRegularExpression 基础使用
前言最近简单整理了一些代码,本文记录一下NSRegularExpression 的使用。代码篇//// KATRegularExpression.swift// SwiftRouter//// Created by LYU on 2018/4/17.// Copyright © 2018年 LYU . All rights reserved.//import...原创 2018-04-24 16:14:56 · 2094 阅读 · 0 评论 -
UIButton 自定义子布局 实现图文排版
效果图代码示例//// LYUContentLayoutBtn.swift// LYUMVVMKit//// Created by LYU on 2018/5/24.// Copyright © 2018年 LYU. All rights reserved.//import UIKitenum LYUButtonLayoutStyle { c...原创 2018-05-24 15:11:57 · 869 阅读 · 0 评论 -
wkwebview 通过scrollHeight 获取的实际高度不准确
需求移动端使用webview加载后端返回的富文本,当在移动端点击查看全部的时候,全部显示。示例 示例代码 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { webView.evaluateJavaScript("document.body.scrollHeight") { (valu原创 2017-12-14 17:23:03 · 8265 阅读 · 0 评论 -
iOS 去除后台返回的数据的null值
//MARK:-接口返回数据处理(去除null值) fileprivate class func handleResponseObject(valueData:Any)->Any{ if valueData is [String:Any]{//判断数据类型 不再是是iskind/ismember return self.nulldic(va原创 2017-06-16 17:16:35 · 1449 阅读 · 0 评论 -
swift NSStringDrawingOptions计算文本的宽高
在Swift中我们计算文本的宽度和高度可以使用一下方式://.usesFontLeading 使用字体的行间距来计算文本占用的范围,即每一行的底部到下一行的底部的距离计算 //.usesLineFragmentOrigin 整个文本将以每行组成的矩形为单位计算整个文本的尺寸 //.usesDeviceMetrics 将文字以图像符号计算文本占用范围,而不是以字符计算。也即是以每一个字体所占用的空原创 2017-09-13 14:49:20 · 2656 阅读 · 0 评论 -
swift3.0 ios10.0 友盟推送
//// AppDelegate+UMeng.swift// FriendCoding//// Created by qingxun on 2017/7/6.// Copyright © 2017年 吕陈强. All rights reserved.//import Foundationimport UIKitimport UserNotificat原创 2017-07-06 15:58:59 · 1232 阅读 · 0 评论 -
Swift NavigationBar隐藏后的右滑手势
需求我们在开发中经常遇见这样的需求,就是A视图没有导航,pushB视图后导航栏。然后要求可以使用iOS的系统侧滑返回功能。类似如下的功能: 问题在处理这个需求的时候,我们一般会遇到两个问题:右划返回手势iOS开发中,使用push视图,系统是有默认的侧滑返回上个视图的功能。但是当我们自定义导航栏时,这个手势的事件就没有再触发,此时只要我们重新将代理设置为controller即可。 代码示原创 2017-08-28 23:15:50 · 2392 阅读 · 0 评论 -
swift 中详情页 使用 Flex 的布局
项目需求 根据上面的页面需求,我们可以知道使用原生来写布局效果并不是很好,因为其中牵扯着webview的自适应内容高度,这个在安卓端,用scrollview+webview就可以实现。但是在iOS端只能在wenviewdidload 后 获得webview的内容高度。但是这样做,我们不能找到一个合适的webview的预设值(高度)。在加载的时候,高度的改变就很突兀。所以我们干脆就全部使用html+原创 2017-09-16 17:13:15 · 1356 阅读 · 0 评论 -
Swift 集成 NIMSDK 踩坑之路
之前的项目即时通讯用的网易云通讯(3.8.0),在测试时发现在iOS11.0上UI适配出现了问题,所以需要重新集成NIMSDK(4.3.0)。以下记录过程中遇到的问题。第一个坑Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_NTESSDKConfigDelegate", referenced from: objc-c原创 2017-10-22 11:34:05 · 1991 阅读 · 0 评论 -
iOS 开发笔记
1、IQKeyboardManager 禁止某个 UITextField 的工具栏 针对 ViewController 级别禁用工具栏:IQKeyboardManager.sharedManager().disableToolbarInViewControllerClass ,如果这个 UITextField 直接 add 到 window 上的这个方法就不管用了,可以直接设置 inp...原创 2016-09-22 09:31:17 · 391 阅读 · 0 评论 -
Swift 自定义 UICollectionViewFlowLayout 实现横向布局分页
需求在当前的移动端开发中,我们经常可以看见集合视图需要横向布局分页的场景。例如:微信的表情美团外卖的首页需求实现分析//预布局方法 布局相关代码可放在此处override func prepare() {}/** 返回true只要显示的边界发生改变就重新布局:(默认是false) 内部会重新调用prepareLayout和调用 layoutAttributesFor原创 2017-10-15 23:28:15 · 5440 阅读 · 0 评论 -
Swift String.Index 字符串的切片操作
需求在Swift中字符串的相关操作再也不是Int类型,而是String.Index。虽然不知道官方为什么这样设计,但是在开发的时候,使用起来,确实是不好看,而且让代码看起来不简洁。因此,为了方便以后的使用,就简单的封装一下,方便我们日常开发需求。实现在Swift中,对字符串的操作,其实跟OC差不多,但是参数都是String.Index,这个让我们写起来就很不舒服了。 话不多说,直接上代码:exte原创 2017-10-16 23:35:48 · 6915 阅读 · 0 评论 -
Swift 显示浏览 pdf 文件
webView显示pdf文件在开发中,我们可以用文本view加载pdf文件,这个直接加就可以了。使用CoreGraphics绘制pdf内容import UIKitimport CoreGraphicsclass PDFView: UIView { var document:CGPDFDocument! var pageNum:NSInteger = 1; /// 初始化加原创 2017-10-17 11:21:17 · 2657 阅读 · 0 评论 -
Swift 设置UITextField的placeholder的字体大小、颜色
import UIKit extension UITextField原创 2017-11-15 13:45:55 · 2113 阅读 · 0 评论 -
Module 'RxSwift' has no member named 'Resources
问题:使用cocoapods 集成RxSwift 后 引入项目工程不能使用RxSwift.Resources.total 。一直报错Module ‘RxSwift’ has no member named ‘Resources解决方式: 在podfile 添加如下代码 post_install do |installer| installer.pods_project....原创 2018-06-26 13:01:31 · 1228 阅读 · 0 评论