iOS
文章平均质量分 64
心若向阳_无谓悲伤
既然选择了远方,便只顾风雨兼程
展开
-
iOS16适配
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可能会因为各种原因,导致功能不可用和UI错乱等问题,我们需要做好适配iOS 16。原创 2022-09-23 14:26:05 · 5454 阅读 · 1 评论 -
scrollView 在改变控制器导航栏是否透明时,scrollView下移
1、进入控制器,在viewWillAppear方法里设置导航栏透明,为了是scrollView不偏移,设置了:scrollView.contentInsetAdjustmentBehavior = .never但是我的业务场景还有,当页面往下滑动的时候,恢复导航栏不透明效果,此时,scrollView又发生了下移解决方法:extendedLayoutIncludesOpaqueBars = true...原创 2022-05-29 18:24:11 · 238 阅读 · 0 评论 -
CDN: trunk Repo update failed - 13 error(s)
在执行完 pod install --repo-update 后,得到一下错误:[!] CDN: trunk Repo update failed - 13 error(s):CDN: trunk URL couldn't be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/1/9/6/PayPalCommerce/2.0.0-beta/PayPalCommerce.podspec.json Response: Couldn't connect t原创 2022-04-14 12:08:07 · 2995 阅读 · 2 评论 -
iOS镂空效果
直接再View上做镂空效果,代码 如下:extension UIView {// 不带圆角,方形func mask(maskRect: CGRect, invert: Bool = false) { let maskLayer = CAShapeLayer() let path = CGMutablePath() if (invert) { path.addRect(self.bounds) }...原创 2022-03-25 15:45:19 · 792 阅读 · 0 评论 -
writetoFile failure
write ToFile1、存入的是基本类型,例如:NSNumber (NSInteger, Float, Double), NSString, NSArray, NSDictionary, Bool, NSDate。。。。等2、写入的数据不能为自定义类型或者NUll,不过自定义类型可以通过归档讲数据转化为NSDate类型根据以上第二条,通过抓包,我们存入的数据包含,null,所以一直 存入失败,可以直接把类型转为 string,防止出错//数组转json func getJSONStrin原创 2022-02-16 17:41:52 · 1681 阅读 · 0 评论 -
UIScrollView 页面上滑到屏幕内触发事件
View是否在屏幕内,View出现在屏幕内原创 2021-12-13 17:57:40 · 329 阅读 · 0 评论 -
给UItextView设置placeHolderLabel
let ideaTextView = UITextView() let placeHolderLabel = UILabel() placeHolderLabel.text = "写下你的问题或建议,我们将及时跟进解决(建议上传截图帮助我们解决问题,感谢!)" placeHolderLabel.numberOfLines = 0 ...原创 2021-12-13 15:40:36 · 252 阅读 · 0 评论 -
React Native app for iOS.
https://reactnative.dev/docs/environment-setupNode & WatchmanWe recommend installing Node and Watchman usingHomebrew. Run the following commands in a Terminal after installing Homebrew:...转载 2021-12-13 15:19:58 · 346 阅读 · 0 评论 -
dyld: Library not loaded: @rpath/****.framework/***
错误:dyld: Library not loaded: @rpath/****.framework/**** Referenced from: /Users/***/Library/Developer/CoreSimulator/Devices/167421B8-6B78-4F72-A226-240737DB7961/data/Containers/Bundle/Application/EDEF2AEB-790F-4AB7-9D98-CD387DA67B30/****.app/**** Re原创 2020-06-01 18:32:20 · 897 阅读 · 0 评论 -
RN嵌入现有的app
1、cocopods的时候,配置$(inherited)2、配置 info.plist文件,3、在本地跑项目的时候,先开启服务器cd ****(RN目录)npm start4、跑release环境的时候,要先打包bundle在React Native项目的根目录下执行:react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ./ios/bundle.原创 2020-05-15 18:39:05 · 342 阅读 · 0 评论 -
iOS URL 正则
如果判断一个整体string是否是一个URL,可以直接用URL来创建一个实例,当然也可以用下面的正则判断: func checkURL(_ url: String) -> Bool { let pattern = "(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=...原创 2020-03-06 14:14:52 · 816 阅读 · 0 评论 -
ios .创建文件,文件夹,压缩文件
文件压缩使用的是GZIP swift版本:GZIP这个只提供了一个data的扩展,所以要自己创建文件,当然没有直接的三方工具方便,不过可行哦~class DataTrackingCache: NSObject { static let directory = "DataTracking" static let gzipDiretory = "DataTracki...原创 2020-02-26 12:53:55 · 633 阅读 · 0 评论 -
iOS 写入log日志,压缩上传
先把需求发一下:• 客户端以日志的形式,记录用户的基本信息、使用环境、使用行为等数据。1上报策略• 程序进入后台模式时,立即上传缓存的日志文件• 按照时间,以每小时的频率进行数据上报• 日志文件小于30KB时,不进行上报• 上报成功后,清除已上传成功的日志文件• 特殊上报策略——客户端启动触发的事件,实时上报这里只介绍怎么对文件进行操作。因为全局任...转载 2020-02-24 21:26:00 · 1307 阅读 · 0 评论 -
iOS 从app中分享出小程序
1、小程序缩略图的图片比例是:5:42、需要小程序的原始ID: gh_xxxxxxxx 一定是gh开头的3、需要path:pack-xxxx/xxxxx/xxxxxx 类似这种4、使用微信分享方法,我这里用的是原生微信分享,没有使用第三方示例代码如下: static func shareToWechatSession(_ title: String, image:...原创 2020-02-20 12:22:27 · 1144 阅读 · 0 评论 -
关于 Arabic(阿拉伯语)的一些适配
1、UIButton 同时添加图片和文字的时候,一般是图片在左,文字在右,稍微加些间距,就可以满足设计师们的要求;有些需求是文字在左,图片在右,这个时候其实我们也只需要把UIbutton的方向改变一下就可以了:UIView.userInterfaceLayoutDirection(for: .unspecified) = .rightToLeft在XIB中就是UIButton下面的关于的...原创 2020-01-13 14:52:36 · 1343 阅读 · 0 评论 -
iOS SIGPIPE: Signal 13, Code 0 crash
公司用的sentry上有一个bug很奇怪,它融汇到了同一个crash日志上,crash的地方却出现在了各个页面,但有一个共同点:每次记录都有SIGPIPE: Signal 13, Code 0 字样 很感谢前辈们给踩的坑,成功解决这个问题:详细解决办法贴链接给大家:不让 SIGPIPE signal 太嚣张,在这里记录一下,主要有个注意的地方:signal(SI...原创 2019-12-24 18:49:56 · 886 阅读 · 0 评论 -
Expected date string to be ISO8601-formatted
我们定义一个 time 类型为 Date例如:struct SessionTime: Codable { let sessionStartTime: Date? let sessionEndTime: Date? let newSessionStartTime: Date? let newSessionEndTime: Date?}并且在解析的时候,...原创 2019-12-02 16:51:00 · 562 阅读 · 0 评论 -
iOS项目移除Carthage集成Cocopods
首先:删除Carthage: 在Finder中,从项目的根文件夹中删除这些文件和目录: CartfileCartfile.resolvedCarthage/ 2. 删除framework引用。3.然后:集成cocopods:见另一个文章:传送门...原创 2019-11-01 16:07:45 · 747 阅读 · 0 评论 -
UILable不同版中的lineBreakMode
label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方原创 2017-12-15 17:47:39 · 212 阅读 · 0 评论 -
纯代码实现 presentAsPopView
在iOS中,segue的class为UIStoryboardSegue,用于storyboard中不同视图控制器间转场,即从一个视图控制器转场到另一个视图控制器。Segue的起点必须是一个view或者定义某些操作的对象,如:UIBarButtonItem、UIControl和UIGestureRecognizer。Segue分为以下几种类型,其中Push、Modal、Popover和Repla...原创 2019-03-29 11:17:17 · 366 阅读 · 0 评论 -
给UItextView设置placeHolderLabel
let ideaTextView = UITextView() let placeHolderLabel = UILabel() placeHolderLabel.text = "写下你的问题或建议,我们将及时跟进解决(建议上传截图帮助我们解决问题,感谢!)" placeHolderLabel.numberOfLines = 0 ...翻译 2019-03-27 19:33:52 · 868 阅读 · 0 评论 -
'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto'
swift3消除警告'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto'Swift3废除了subString(from\to\with:)字符串截取方法。而截取方法改成了:let newStr = String(str[..<index])...原创 2019-03-27 16:22:50 · 3341 阅读 · 0 评论 -
升级 cocopods
sudo gem install cocoapods --pre网上找的都不对,烦人升级后,查看cocopods版本pod --version现在的是 1.6.0.beta.2cocopods安装:https://guides.cocoapods.org/using/getting-started.html#getting-started...原创 2019-01-21 11:17:24 · 551 阅读 · 0 评论 -
iOS 极光推送开发环境可以收到,生产环境收不到推送
感觉这次的爬坑,很有必要记录一下,网上找了很多资料,确实有很多有用的,但是都不全,可能是我没有找到全的,最近太忙就简单记录下需要注意的点吧:1、后台要设置对setOptions(Options.newBuilder().setApnsProduction(ture);2、0为测试环境,1为生产环境[JPUSHService setupWithOption:launchOptions appKey:...原创 2018-03-02 17:37:37 · 2229 阅读 · 0 评论 -
CollectionView Header的使用
collectionView的使用和tableView类似,遵守数据源和代理方法是必要的,而不太常用的是 CollectionView Header,如果你想给每一组section设置不同的cell也是也可行的遵守下面的代理方法:- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView vie原创 2017-12-25 18:18:45 · 4485 阅读 · 0 评论 -
获取当前页面的path
模块化开发相信大家早已经有所接触,或看过文章,或自己搭建了一个项目测试,或公司正在使用,网上关于模块化,组件化的文章也颇多,我便不再多述,写此篇的目的,是为了记录自己的问题:MGJRouter 提供了注册和打开某个页面的方法MGJRouter.registerURLPattern(buildPath(path: routable.path), toHandler: { (param...原创 2019-04-20 11:57:16 · 1184 阅读 · 0 评论 -
IOS UIViewController 在popView 8秒之后才走dealloc/deinit
今天在测试页面释放的时候,发现每次都是过了几秒之后才走deinit,然后就逐步的查找问题,既然走了deinit方法,就不会是强引用导致的,通过代码注释的方法(好low),才想起来,我这个页面是需要8秒之后就要隐藏掉页面的所有View,点击才显示出来,所以我写了个方法:perform(#selector(hideView), with: nil, afterDelay: 8)问题就是这个d...原创 2019-05-24 11:17:13 · 745 阅读 · 0 评论 -
解决点击按钮使屏幕横屏,iPad无效
我们的APP是支持屏幕旋转的,当然,支持屏幕旋转,只需要如下勾选就可以了:所以,当用户锁定屏幕方向的时候,我们的APP也是会随之锁定方向但是,我们有些页面,是无论用户是否锁定屏幕,都可以支持横屏的,代码如下:func didClickFullScreenButton(_ sender: UIButton) { sender.isSelected = !sender...原创 2019-06-20 16:33:55 · 895 阅读 · 0 评论 -
OC语言之autorelease基本使用
# autorelease基本使用##1.autorelease基本概念- autorelease是一种支持引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里面的`所有对象做一次release操作` +> 注意,这里只是发送release消息,如果当时的引用计数(reference-counted)原创 2016-02-21 20:58:59 · 1540 阅读 · 0 评论 -
iOS开发之iOS13 暗黑模式(Dark Mode)适配
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/shifang07/article/details/101307247导读:Material Design & iOS 13 黑暗模式总结探索暗黑模式苹果开发文档如何不进行系统切换样式的适配注意 1、同一工程...转载 2019-11-01 16:20:09 · 2013 阅读 · 0 评论 -
iOS 文件下载与查看
//生成一个downloadTask let config = URLSessionConfiguration.default let session = URLSession(configuration: config, delegate: self, delegateQueue: OperationQueue()) self.sessi...原创 2019-08-28 19:31:13 · 1680 阅读 · 0 评论 -
iOS 长按弹框,菜单栏
重写UIView,UIButton,UIImageView等,实现长按各种控件弹出菜单栏class MenuView: UIView { override var canBecomeFirstResponder: Bool { return true } override func canPerformAction(_ action: Sel...原创 2019-08-28 19:16:56 · 2329 阅读 · 1 评论 -
IOS 从相册里拿到照片的格式转换
iPhone手机有一些实况图,全景图等,如果直接去文件后缀,安卓或者web是不支持的,我们的需求就是把这些格式全部都转成任何的格式,JPEG就可以,简单的来写,就是如下代码:import MobileCoreServices public func getOriginalPhotoData(_ asset: PHAsset?, completion: @escaping (_ da...原创 2019-08-28 19:04:02 · 1385 阅读 · 0 评论 -
iOS 10 系统CPU 100% 卡住,但是memory没有涨上去,iOS11及其以上没有问题
控制台并没有打印,卡住也没有crash我百思不解,用Instrument工具的leaks 和 Time Profiler 也没有检测出来最后用最笨的方法:注释法来一段代码一段代码的注释强引用的问题:weak 不仅仅是代理啊,block这种常见的,自己定义变量的时候也多考虑考虑!...原创 2019-08-28 18:46:22 · 457 阅读 · 0 评论 -
iOS判断当前设备旋转方向
UIDeviceOrientation 是机器硬件的当前旋转方向 这个你只能取值 不能设置UIInterfaceOrientation 是你程序界面的当前旋转方向 这个可以设置UIDeviceOrientation oriention = [UIDevice currentDevice].orientation;UIInterfaceOrientati...转载 2019-06-26 18:00:02 · 1033 阅读 · 0 评论 -
iOS 判断屏幕方向锁定是否开启
网上找了很多,都不是自己想要的 func isProtraitLockOn() -> Bool { let app = UIApplication.shared var foregroundView: UIView? var cls: UIView.Type? let statusBar: UIView? = app...原创 2019-06-26 16:22:50 · 2148 阅读 · 1 评论 -
GCD 定时器
原创 2017-12-12 19:54:49 · 283 阅读 · 0 评论 -
将本地项目上传到gitlab下
1、首先,第一次使用gitlab,要生成 ssh keys大体分为如下步骤:a、进入.ssh目录$ cd ~/.ssh#如果.ssh文件夹不存在,可以执行指令并自行创建$ mkdir ~/.sshb、查看当前目录文件$ lsSSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。c、生成sshkey原创 2017-11-06 20:46:10 · 1375 阅读 · 0 评论 -
C语言 二维数组
# 二维数组基本概念##1.二维数组的基本概念- 所谓多维数组就是一个一维数组的每个元素又被声明为一 维数组,从而构成二维数组. 可以说二维数组是特殊的一维数组。- 示例 +int a[2][3] +可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素##2.二维数组的定义- 格式: +数据类型 数组名[一维原创 2016-01-15 22:21:24 · 8050 阅读 · 0 评论 -
C语言 指针与数组,结构体
# 指针与数组##1.数组指针的概念及定义- 数组元素指针 +一个变量有地址,一个数组包含若干元素,每个数组元素都有相应的地址指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中) 所谓数组元素的指针就是数组元素的地址 printf(“%p %p”, &(a[0]), a);输出结果:0x1100, 0x1100``` >+ 注意: 数组名a不代表整原创 2016-01-16 20:02:31 · 1349 阅读 · 0 评论