iOS中使用UIDocumentPickerViewController从iCloud选择文件
使用方法如下: let documentPicker = UIDocumentPickerViewController(documentTypes: [String(kUTTypePDF)], in: UIDocumentPickerMode.open) documentPicker.modalPresentation…
阅读全文 »已阅读 1,007 次使用方法如下: let documentPicker = UIDocumentPickerViewController(documentTypes: [String(kUTTypePDF)], in: UIDocumentPickerMode.open) documentPicker.modalPresentation…
阅读全文 »已阅读 1,007 次在开发的时候,有很多地方需要显示UIViewController,但在很多时候很不方便显示,比如在一个不是ViewController的类里在一个普通的View里或者一个管理类里,在这些情况下我们需要将源ViewController传递到使用的地方使用如下方式显示VC: viewController.present(v…
阅读全文 »已阅读 692 次在日常的开发中我们经常会有这样的需求就是使一个View显示到最上层,从而不被其他View所遮挡,那么一共有两种方式。比如说我们的view1需要放到最上层,二parentView是它的父容器,那么我们来看一下两种方法是怎么实现的: 1) 第一种使用bringSubview(toFront:)方法来实现 parentVie…
阅读全文 »已阅读 5,142 次parentView.bringSubview(toFront: childView) 其实就这么一句话,parentView代表父容器,childView代表子View,也就是你想放到最上层的View
阅读全文 »已阅读 3,525 次在做项目的过程中往往会用到UITableView或UICollectionView删除Cell的需求,那么做这些操作的时候我们需要注意操作的顺序。 在操作删除UITableView或UICollectionView的Cell之前,我们需要先将需要删除的数据从数据源中删掉,然后再去做UI上的删除 UICollection…
阅读全文 »已阅读 1,284 次最近升级完swift4做了很多适配的工作,当然大部分适配还是停留在UI上的,尤其是iPhoneX出来之后,做了很多关于它的适配,包括刘海还有底部安全区域的适配。 但要命的是程序原来跑的好好的,但现在莫名其妙的在一些地方crash了,Oh No 什么情况这是,一阵的慌张,然后急匆匆到Google上进行查找解决方案,也就是…
阅读全文 »已阅读 1,556 次其他废话不说,直接上代码 tableNode?.view.snp.makeConstraints({ (make) in if #available(iOS 11.0, *) { make.edges.equalTo(self.view.safeAreaLayoutGuide.snp.edges) } else { m…
阅读全文 »已阅读 1,131 次在做项目的过程中突然遇到要在keywindow上添加一个全屏View来实现一个ViewController从底部present出来的一个效果,当然只是把View添加到keywindow上很简单,但我现在布局用的是自动布局,这个动画就不好实现了。 我突然想到了用SnapKit这个自动布局库来实现一下试试,经历了好几个版本…
阅读全文 »已阅读 5,394 次let statusbarHeight = UIApplication.shared.statusBarFrame.height //获取statusBar的高度 在iPhoneX上Statusbar的高度是44,在其他型号的设备上都是20,这是苹果发布iPhoneX的一大改变。 如果在iOS11.0上使用了大标题 n…
阅读全文 »已阅读 2,348 次import UIKit class HHDevice { static func isIphoneX() -> Bool { return iphoneType() == “iPhone X” } static func bottomOffset() -> CGFloat { return isIphon…
阅读全文 »已阅读 1,105 次在把工程转换更新成Swift4后会有这个警告就是 The use of Swift 3 @objc inference in Swift 4 mode is deprecated 然而这个警告没有很多的需要去修改只需要我们做一下设置就行,如下图
阅读全文 »已阅读 1,254 次苹果的swiftAPI更新很快,现在已经升级到swift4,在我做API适配的时候发现Swift4对String的操作简化了很多,所以写一篇文章总结一下,希望能够帮助到有需要的人。 在Swift4之前使用String的字符集需要使用String.characters来获取,如代码 var str1 = “What ar…
阅读全文 »已阅读 881 次在开发的过程中我们需要对UIView进行一定角度的旋转,下面我就以逆向旋转90度来给出具体代码示例 let transform = CGAffineTransform(rotationAngle: CGFloat( -90 * Double.pi / 180)) //在这里我们得到选择的角度,我们逆向旋转90度就像代码…
阅读全文 »已阅读 1,779 次今天早上上班的路上,微信收到同事发来的一个问题,是在操作一个按钮的时候发现App卡死了,我第一反应就是程序肯定崩溃了。我突然想起前两天写的一个功能,这个功能在iPad和iPhone上不一样,到公司一看果然是这个功能开发的时候iPad和class中定义的View正确连线了,但iPhone没有,就这样造成在手机上造成cra…
阅读全文 »已阅读 633 次//切换为default override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) UIApplication.shared.statusBarStyle = .default } //切换为白色 override f…
阅读全文 »已阅读 696 次今天在做项目的过程中需要检测UIView的isHidden属性然后做一些自己想操作的内容,然后就写了一下,经过尝试重写了isHidden属性来监测它,代码如下 override var isHidden: Bool { get { return super.isHidden } set(v) { super.isHid…
阅读全文 »已阅读 1,726 次现在的生活中大家经常用到智能手机,其中很大部分用的是苹果的手机。在生活中经常会有这样的场景,在一个应用内会有分享或者需要支付的需求,通常会通过当前APP调用第三方的支付或者分享,例如微信支付、微信分享、微博分享等。那么这些功能到底如何在iOS设备上做到的呢,那就是通过开发通过URL Scheme的定义实现的,APP通过…
阅读全文 »已阅读 2,302 次在我们日常的开发过程中在很多场景都需要获取随机数,包括很多数据类型,整形,长整形等。 如果我们需要一个随机整数,我们可以使用arc4random系列函数,其实这个函数大家用的很多了吧,比如说我们需要生成一个指定范围内的一个随机数,我们则需要给他指定一个上限max,arc4ramdom()返回值类型是UInt32。下面看…
阅读全文 »已阅读 877 次今天突然用到了UICollectionView,但发现忘记怎么设置cell的大小了于是查了一下资料,又重新温习了一下这方面的内容。代码如下 let layout = UICollectionViewFlowLayout() layout.scrollDirection = .horizontal //设置滚动方向 la…
阅读全文 »已阅读 2,507 次今天有一个需求需要做到数组中有一条数据一定要排在第一个,刚开始的写法是将这条数据取出来缓存一下,然后将这条数据插入到已经排除掉这条数据的数组中的第一个,代码如下: let id = “aaa” let first = self.fullDatas?.filter({ (data) -> Bool in if id…
阅读全文 »已阅读 1,005 次