Swift
xiao_yuly
努力的人,运气不会太差
展开
-
swift 4.0中dispatch_async,dispatch_after的使用
Swift 2.xdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { let image = self.loadImage() // 回到主线程更新UI dispatch_async(dispatch_get_main_queue()) { self....原创 2018-03-28 16:15:44 · 21254 阅读 · 0 评论 -
图片压缩到制定大小
swift 4.2将图片压缩到制定的大小,使用二分法进行循环,让计算值接近目标值func compressQuality(_ maxLength:NSInteger,_ cyles:Int = 6) -> Data { var compression:CGFloat = 1 var data = self.jpegData(compressionQu...原创 2018-11-28 11:00:12 · 869 阅读 · 0 评论 -
cell中手指滑动停留后的Image优先显示
使用Kingfisher加载图片,在cell列表中,手指可快速滑动后,划过的内容可能是用户不感兴趣的内容,优先显示的方式:cell.imageView.kf.cancelDownloadTask()cell.imageView.kf.setImage(with: URL(string: dataSource[indexPath.row])) ...原创 2018-11-20 17:56:20 · 324 阅读 · 0 评论 -
iOS 12.1 tabbar从二级页面返回跳动问题的解决方法
OC: [[UITabBar appearance] setTranslucent:NO];Swift: tabBar.isTranslucent = false原创 2018-11-08 13:39:24 · 3554 阅读 · 1 评论 -
Swift UIView转Image/二维码生产
///View转Image static func getViewScreenshot(view: UIView) -> UIImage { UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale) view.layer.render(in...原创 2018-11-07 14:33:33 · 1504 阅读 · 0 评论 -
iOS11以上系统使用scrollRectToVisible回到顶部失效的解决方法
回到列表顶部:tableView.scrollRectToVisible(CGRect(x: 0, y: 0, width: tableView.width, height: tableView.height), animated: false)在tableView上使用,有时会无效,无法回到顶部解决方法: if #available(iOS 11.0, *) { ...原创 2018-10-25 10:27:07 · 2413 阅读 · 0 评论 -
Swift 中map、flatMap、filter、reduce的介绍
1.map函数map方法获取一个闭包表达式作为其唯一参数。 数组中的每一个元素调用一次该闭包函数,并返回该元素所映射的值。简单说就是可以对数组中的元素格式进行转换,最后返回一个新的数组。//将Int数组转换为String数组//$0代表数组的元素let array = [1, 2, 3, 4, 5 , 6, 7]let result = array.map{ String($...原创 2018-07-25 18:59:40 · 434 阅读 · 0 评论 -
Swift 4.0 UILabel显示html标签的高度计算
//富文本 let attrStr = try! NSMutableAttributedString( data: (answer.content.data(using: .unicode, allowLossyConversion: true)!), options:[.documentType: NSAttributedStrin...原创 2018-07-03 17:03:54 · 2606 阅读 · 0 评论 -
Swift定时器的几种实现方式
方式一:使用performSelector实现@objc func getCodeAction(sender:UIButton) { count = 60 self.performSelector(inBackground: #selector(timerThread), with: nil) //获取验证码 } @objc...原创 2018-06-06 15:09:54 · 5975 阅读 · 0 评论 -
Swift中weak与unowned的区别
在闭包里面为了解决循环引用问题,使用了 `[unowned self]`。如果回调在self已经被释放后再调用,会导致crash掉。解决:使用weak修饰。weak与unowned的区别: unowned设置以后即使它原来引用的内容已经被释放了,它仍然会保持对被已经释放了的对象的一个 "无效的" 引用,它不能是 Optional 值,也不会被指向 nil 。如果你尝试调用这个引用的方法或者...原创 2018-06-06 14:16:22 · 3418 阅读 · 0 评论 -
Swift 4.0 网络状态检测
使用Alamofire中`NetworkReachabilityManager`实现class func currentNetReachability() { let manager = NetworkReachabilityManager() manager?.listener = { status in var statusStr: St...原创 2018-04-13 16:13:18 · 6156 阅读 · 0 评论 -
JS与原生OC/Swift相互调用总结
JS和OC/Swift相互调用,主要总结了JS和OC交互的三种方式:1.使用UIWebView,利用JavaScriptCore实现2.使用WKWebView,利用WKScriptMessageHandler实现3.使用第三方框架WebViewJavascriptBridge实现案例地址:https://github.com/xinyuly/JS_OC_SwiftJavaScriptCore在Sw...原创 2018-03-29 14:54:10 · 1371 阅读 · 0 评论 -
swift之mutating关键字的使用
在Swift中,structure和enumeration是值类型(value type)class是引用类型(reference type)。默认情况下,实例方法中是不可以修改值类型的属性,使用mutating后可修改属性的值例如:在结构体中,有一个实例方法,如果直接修改属性的值,编译器会报错。可以使用mutating修饰struct Point { var x...原创 2019-02-12 17:02:09 · 6589 阅读 · 0 评论