- 博客(132)
- 资源 (12)
- 收藏
- 关注
原创 kotlin 计算一个方法或代码片段的用时方式
val timeCost = measureTimeMillis { //这里做耗时的工作,例如处理文件或图片、写数据}print("耗时 $timeCost")
2021-04-21 10:46:49 1557 1
原创 Android发布库到MavenCentral说明以及踩坑解决
Android发布库到MavenCentral说明以及踩坑解决jcenter即将停止服务,由于之前我们好多库都是发布到jcenter上,现在必须抓紧找下家才行,我们针对jitpack和mavencentral进行了调研,结果如下:jitpack的发包必须需要将源码发布到github上,这中情况对于我们的产品自用SDK的情况非常不友好mavencentral不用公布源码到github上,和自建Nexus Repository Manager去管理发布库很类似,只要把需要配置的gradle选项配置到项目
2021-04-14 10:17:54 1362 1
原创 swift中Dictionary的grouping by使用
今天在写一个功能的时候用到了Dictionary 的 grouping by 这个用法,代码先贴出来import UIKitclass AlignFlowLayout: UICollectionViewFlowLayout { required init(itemSize: CGSize = CGSize.zero, minimumInteritemSpacing: CGFloat = 0, minimumLineSpacing: CGFloat = 0, sectionInset:
2020-08-04 16:11:58 972
原创 使用UICollectionView做tag显示的时候的对齐方式
import UIKitenum AlignType : NSInteger { case left = 0 case center = 1 case right = 2}class EqualCellSpaceFlowLayout: UICollectionViewFlowLayout { //两个Cell之间的距离 private var horizontalSpace : CGFloat{ didSet{ self.
2020-08-04 16:09:46 600
原创 Android利用Service和AsyncTask做断点下载之下载部分
好几年没有写Android程序了最近在往回捡,通过看一本书看到了Service这块然后就想着按照书上的例子写一个可以断点下载的Demo。首先列出了用到的三方库,就只用到了okhhtp这个网络操作库,连接如下:https://github.com/square/okhttp一、先在build.gradle里添加okhttp库的引用implementation 'com.squareup
2018-04-04 18:23:19 469
原创 Android异步处理之AsyncTask
public class DownloadTask extends AsyncTask { @Override protected void onPreExecute() { super.onPreExecute(); //这里可以写执行任务前的代码,例如显示进度条 } @Override protected void o
2018-04-03 16:45:43 221
原创 git 在服务器上使用ssh公钥授权
大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。 首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看:localhost: xxx$ cd ~/.sshlocalhost:.ssh xxx$ lsgithub_rsa
2018-04-03 14:50:39 1855
原创 Android代码混淆
今天为什么写这篇文章是因为我又开始写安卓的东西了,在日后的工作中肯定会用到相关内容,记着几年前写过安卓但当时用到的混淆只是简单的按照网络上的配置弄的并没有深究到底是什么意思到底怎么用,今天静下心来取研究一下它到底是怎么配置的。一、使用Android Studio是如何做代码混淆配置的 记着以往我们开发Android是使用Eclipse加ADT插件,但最近这两年Android Stu
2018-04-03 11:40:01 221
原创 结合github创建私有maven库
最近由于工作需要又开始搞安卓方面的东西不过还没深入,由于需要做一个SDK去让其他人用所有就想着能不能做一个类似于iOS上用的Pod管理,经过查资料决定用github联合maven做一个私有库,下面是过程。1、第一步当然不用多说我们使用Android Studio创建一个module出来,创建过程就不赘述了,因为网上很多教程,自己点几下一个工程加moudle就出来了。我给它取名字为mysdk,创
2018-04-02 18:49:52 868
原创 Mac移动硬盘不正确卸载造成不识别解决方法
今天在给同事的Mac装一个软件之后直接把移动硬盘直接拔下来了,然后想再插上弄点的东西的时候发现不识别了,瞬间一头冷汗,以为移动硬盘坏掉了,然后赶紧Google发现了使用命令行挂载硬盘就行。第一步先查看硬盘的信息使用如下命令行diskutil list输出如下/dev/disk0 (internal, physical): #: T
2018-03-21 15:06:31 62045 14
原创 Pod 创建私有库之引用三方Framework和libs的配置方法
使用pod管理库已经用了3年,当然也做过私有库,但在做私有库的时候有些东西并没有弄得非常清楚,最近项目需要用到将自己的工程打成Framework并将这个Framework做成pod来供其他人去引用,鼓捣了大概几个小时弄了一个例子,下面和大家分享一下过程和结果。这个Pod工程我以网易云信的SDK作为导入三方包为例,目的是为了演示如果做pod库引用三方frameworks以及libraries。1
2018-03-14 18:13:38 15564 6
原创 iOS获取最上层View
let windows = Array(UIApplication.shared.windows.reversed()) for window in windows { let windowOnMainScreen = window.screen == UIScreen.main let isWindowVisible = !wind
2018-02-26 16:11:44 3172
原创 iOS实现使用其它应用程序打开文件的功能
import UIKitclass Utils: NSObject { static func topviewController() -> UIViewController? { var aRoot = UIApplication.shared.keyWindow?.rootViewController while aRoot?.presente
2018-02-05 16:42:44 4944
原创 iOS 使用UIPanGestureRecognizer实现UIView的拖动
使用UIPanGestureRecognizer实现UIView的拖动的时候,需要先给UIView添加手势对象let gesture = UIPanGestureRecognizer(target: self, action: #selector(move)) gesture.maximumNumberOfTouches = 1 gesture.minimumN
2018-02-02 15:42:57 4142
原创 iOS将App做成可在文件分享打开中出现
用法去下,只要在Info.plist中配置上对应文件类型就行,如图(以PDF文件作为示例)CFBundleDocumentTypes CFBundleTypeIconFiles CFBundleTypeName com.adobe.pdf CF
2018-02-02 12:01:43 2110
原创 iOS中使用UIDocumentPickerViewController从iCloud选择文件
使用方法如下:let documentPicker = UIDocumentPickerViewController(documentTypes: [String(kUTTypePDF)], in: UIDocumentPickerMode.open) documentPicker.modalPresentationStyle = .formSheet self
2018-02-02 11:49:32 8475
原创 git push 报错 error: failed to push some refs to
今天写了个小Demo,突然来了兴趣把它放到github上去,于是就凭着之前弄过的记忆搞了一下,但就在我准备push到github上的时候报错了,错误如下 ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to 'git@github.com:mingmingsuper/
2018-02-01 17:31:59 576
原创 iOS 11用contentInsetAdjustmentBehavior替代automaticallyAdjustsScrollViewInsets
iOS 7中使用该方法来自动调整 UIScrollView 的 contentInset 。在iOS 11之后将会使用 UIScrollView 的 contentInsetAdjustmentBehavior 属性来代替该方法。查看原文:https://www.liuandy.cn/ios/2018/02/01/2303.html
2018-02-01 15:32:17 2775
原创 IOS打包动态库以及使用的过程和注意事项
创建IOS动态库其实也并非什么难事,因为目前最新版本的Xcode已经支持创建动态库了。所谓的动态库就是将一些可以在多个项目中用到的公用代码可以放到同一个工程里边,然后打成一个包,这个包的后缀是framework,这个文件可以引用到多个项目中使用,因为它是一个独立的代码库,也可称为第三方库,相信大家之前也用过其他第三方一些SDK什么的,这个和那些一样的用法,下面介绍一下如何创建动态库的工程:1.
2018-01-31 15:45:55 1874
原创 阿拉伯数字转换为汉字
其实很简单其实就是用NSNumberFormatter来做格式化就好了如下NSNumberFormatter *formatter = [NSNumberFormatter new];formatter.numberStyle = kCFNumberFormatterRoundHalfDown;[formatter stringFromNumber:[NSNumber numberWith
2018-01-31 15:36:43 664
原创 安装路由器,如果上层路由绑定了mac那么则需进行mac地址克隆操作才能用
昨天给朋友装路由器,遇到了一个问题就是一切配置完毕,路由器连接信息显示为已连接,但连接路由器的电脑还是不能上网,我就纳闷了,后来得知原来是房东给绑定了mac地址,这太郁闷了,点击路由器中mac克隆,保存,搞定,终于可以上网了查看原文:https://www.liuandy.cn/informal_essay/2018/01/31/2295.html
2018-01-31 15:34:58 803
原创 Terminal 搜索文件并批量删除
find . -name ".gitignore" | xargs rm -rf find . -type d -name '.svn' -print -exec rm -rf {} \; find . -name ".git" | xargs rm -Rf查看原文:https://www.liuandy.cn/informal_essay/2018/01/31/2293.h
2018-01-31 15:32:49 1437
原创 Mac Pro 开不了机
最近发现Mac Pro开不了机了于是在网上找了很多解决方式,最好用的就是如下方法了 在mac开机出错开不了机的时候重启以最快速度按以下键响3声Option Command p r //记住要同时按住查看原文:https://www.liuandy.cn/informal_essay/2018/01/31/2291.html
2018-01-31 15:31:12 8616
原创 iOS在任何地方都能显示ViewController
在开发的时候,有很多地方需要显示UIViewController,但在很多时候很不方便显示,比如在一个不是ViewController的类里在一个普通的View里或者一个管理类里,在这些情况下我们需要将源ViewController传递到使用的地方使用如下方式显示VC:viewController.present(vc, animated: animated, completion: comp
2018-01-29 15:35:42 209
原创 iOS中使一个View保持在最上层
在日常的开发中我们经常会有这样的需求就是使一个View显示到最上层,从而不被其他View所遮挡,那么一共有两种方式。比如说我们的view1需要放到最上层,二parentView是它的父容器,那么我们来看一下两种方法是怎么实现的:1) 第一种使用bringSubview(toFront:)方法来实现parentView.bringSubview(toFront: mView) 如果用
2018-01-26 10:18:43 18881
原创 iOS做自定义拍照的时候图像选择90度,为了契合iPad的拍照
可以通过获取AVCaptureConnection,然后调用setVideoOrientation:方法解决图像90°问题。比如:显示AVCaptureVideoPreviewLayer[[_videoPreviewLayer connection] setVideoOrientation:AVCaptureVideoOrientationLandscapeRight];拍照,输
2018-01-19 14:33:14 604
原创 python学习之函数自定义
def my_abs(x): if not isinstance(x,(int,float)): raise TypeError('bad parameter type') if x > 0: return x else: return -x以上函数定义了一个返回绝对值的函数,其中not isinstance(x
2018-01-18 09:09:23 285
原创 iOS将一个UIView放到父容器的最上层
parentView.bringSubview(toFront: childView)其实就这么一句话,parentView代表父容器,childView代表子View,也就是你想放到最上层的View查看原文:https://www.liuandy.cn/ios/2018/01/17/2274.html
2018-01-17 17:27:20 7092
原创 UITableView或UICollectionView删除Cell会遇到崩溃的问题
在做项目的过程中往往会用到UITableView或UICollectionView删除Cell的需求,那么做这些操作的时候我们需要注意操作的顺序。在操作删除UITableView或UICollectionView的Cell之前,我们需要先将需要删除的数据从数据源中删掉,然后再去做UI上的删除UICollectionView的删除方法调用如下:mList.remove(at:index)
2018-01-12 18:03:28 1415
原创 Simultaneous accesses to 0x10d000908, but modification requires exclusive access.
最近升级完swift4做了很多适配的工作,当然大部分适配还是停留在UI上的,尤其是iPhoneX出来之后,做了很多关于它的适配,包括刘海还有底部安全区域的适配。但要命的是程序原来跑的好好的,但现在莫名其妙的在一些地方crash了,Oh No 什么情况这是,一阵的慌张,然后急匆匆到Google上进行查找解决方案,也就是如标题所述那样,我的英文一般,看字面意思是一个代码想要访问一个对象需要独占一块
2018-01-12 10:01:34 2271
原创 iOS中使用Settings.Bundle做一些设置
在iOS开发中我们会让用户自己在设置中做一些配置,比如说有些App中某些设置,再例如需要修改APP的服务器地址(让然这种设置可能在开发的过程中我们自己会用到)。那么在Settings.Bundle中支持哪几种配置呢?我们下边来了解一下1、Group字面意思很清楚是分组的意思,它用来表示一组设置项很容易理解,Title就代表分组的名称,Type肯定是Group因为我们再这里定义的
2018-01-11 16:49:15 861
原创 UITableView使用代码添加使用Snapkit控制全屏显示 iOS11适配
其他废话不说,直接上代码tableNode?.view.snp.makeConstraints({ (make) in if #available(iOS 11.0, *) { make.edges.equalTo(self.view.safeAreaLayoutGuide.snp.edges) } else {
2018-01-10 15:20:45 1792
原创 Mac 不显示未知来源选项的解决办法
在 macOS Sierra 系统的「安全与隐私」设置,在允许从以下位置下载的应用中,只有 App Store 与 App Store 和被认可的开发者二个选项,唯独任何来源这个选项不见了打开了 Terminal 终端后 ,在命令提示后输入 sudo spctl --master-disable并按下回车执行随后再输入当前 Mac 用户的密码当执行完之前输入的命令后,成功返
2018-01-05 09:53:25 20758 3
原创 iOS中SnapKit动画的实现
在做项目的过程中突然遇到要在keywindow上添加一个全屏View来实现一个ViewController从底部present出来的一个效果,当然只是把View添加到keywindow上很简单,但我现在布局用的是自动布局,这个动画就不好实现了。我突然想到了用SnapKit这个自动布局库来实现一下试试,经历了好几个版本的实验都以失败而告终,不是没有动画就是动画效果不对,总结了一下失败的原因主要有
2018-01-03 10:02:36 5383
原创 swift中获取statusbar的高度和NavigationBar的高度
let statusbarHeight = UIApplication.shared.statusBarFrame.height //获取statusBar的高度 在iPhoneX上Statusbar的高度是44,在其他型号的设备上都是20,这是苹果发布iPhoneX的一大改变。 如果在iOS11.0上使用了大标题navigationController?.navigation
2017-12-29 17:43:38 10132
原创 Swift判断设备类型整理
import UIKitclass HHDevice { static func isIphoneX() -> Bool { return iphoneType() == "iPhone X" } static func bottomOffset() -> CGFloat { return isIphoneX() ? 20 : 0
2017-12-29 15:49:49 1879
原创 由于国内网路的限制大家无法方便下载Google Chrome那么我在这里提供下载,不定时更新
链接:googlechrome_63.0.3239.108.dmg 2017年12月28日密码:2ssx我会不定时更新,更新频率查看原文:https://www.liuandy.cn/informal_essay/2017/12/28/2176.html
2017-12-28 11:32:35 1747
原创 The use of Swift 3 @objc inference in Swift 4 mode is deprecated
在把工程转换更新成Swift4后会有这个警告就是 The use of Swift 3 @objc inference in Swift 4 mode is deprecated然而这个警告没有很多的需要去修改只需要我们做一下设置就行,如下图查看原文:https://www.liuandy.cn/ios/2017/12/27/2173.html
2017-12-27 13:20:20 2175
原创 Swift3升级到Swift4后String的API升级
苹果的swiftAPI更新很快,现在已经升级到swift4,在我做API适配的时候发现Swift4对String的操作简化了很多,所以写一篇文章总结一下,希望能够帮助到有需要的人。在Swift4之前使用String的字符集需要使用String.characters来获取,如代码var str1 = "What are doing?"//Swift3for c in str1.chara
2017-12-27 11:08:20 1701 1
原创 iOS中UIView旋转
在开发的过程中我们需要对UIView进行一定角度的旋转,下面我就以逆向旋转90度来给出具体代码示例let transform = CGAffineTransform(rotationAngle: CGFloat( -90 * Double.pi / 180)) //在这里我们得到选择的角度,我们逆向旋转90度就像代码写的那样写就好,如果正向90度直接用 90 * Double.pi / 180
2017-12-22 16:28:35 8313
String和StringBuilder类的区别
2008-10-18
C#开发编码规范,有助于你更好进行开发
2008-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人