- 博客(91)
- 收藏
- 关注

翻译 iOS每日一记之————————————————iOS性能优化
写在前面本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员。这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_。性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而
2016-06-12 00:27:09
4065

翻译 iOS每日一记之———————————————终级完美大整理
iOS、mac开源项目及库汇总UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshCon
2016-04-06 17:01:18
22638
1
原创 SwiftUI 使用SwiftUI实现跑马灯效果 Marquee
OC类型的demo很多 这里就不提了直接上代码吧public struct MarqueeText : View { public var text = "" public var font: UIFont public var leftFade: CGFloat public var rightFade: CGFloat public var startDelay: Double @State private var animate...
2021-09-09 16:43:51
743
原创 iOS NetworkExtension let tunFd = self?.packetFlow.value(forKeyPath: “socket.fileDescriptor“) as! Int
iOS进行VPN链接获取tunfdiOS15无法正常创建连接,14正常!解决代码如下if #available(iOS 15, *) {var buf = [CChar](repeating: 0, count: Int(IFNAMSIZ))let utunPrefix = "utun".utf8CString.dropLast()return (0...1024).first { (_ fd: Int32) -> Bool invar len = socklen_t(buf.c.
2021-06-29 11:50:35
1429
5
原创 SwiftUI iOS13情况下实现类似于CollectionView的效果
iOS 14 Swift2.0是有个LazyVGrid和LazyHGrid这里就不提了iOS13的情况下是不能使用这两个的所以只能自己去实现代码如下:首先先对集合类型进行一个扩展 进行查找extension Collection { func group(by size: Int) -> [[Element]]? { // Inspired by: https://lodash.com/docs/4.17.4#chunk ...
2021-06-04 15:59:43
1026
原创 SwiftUI : 使用List去掉List分割线。
需求是这样的:一个列表 UIKit框架中就是个tableView 然后去处tableViewCell的分割线SwiftUI中是使用List去替代TableView的实现的 去除List的分割线方法如下:iOS 13的情况下 你写一个modifierstruct ListRemoveSeparator: ViewModifier { func body(content: Content) -> some View { content .o...
2021-06-03 11:27:43
1722
1
原创 SwiftUI初感悟与感想
公司现在的项目是SwitUI写的 SwiftUI是19年发布的 目前来讲其实还是不算太完善 目前发布到了SwiftUI2.0 但是里面有部分功能只支持iOS14 也就是说iOS13 是没办法实现的。 这就很打脑壳了。毕竟新东西 其实关于SwiftUI的相关资料是不多的 对于可以翻墙的同学 你可以谷歌进行查找 其实是很不错的 但是对于google不了的同学 我看了下也是有些资料的 但是资料很有限 而且还要收费。额 本着开源精神 后续我会整理些开发中遇到的SwiftUI相关的问题 然后进行解答 。说
2021-06-03 11:17:00
238
1
原创 时隔四年 重新写点什么吧 。。。
其实在我工作3年的时候 也就是17 18年那会 我基本上很少更新博客了 主要是确实觉得没什么想写的 工作中遇到的问题很少 基本都是以前那些老生常谈的东西 大不了Github找个Demo就搞定了 偶尔也就搞下内存优化 或者性能优化啥的 仅此而已。这种状态一直持续到一个月前 知道我加入了现在的公司 工作内容不难 就是后端写一个代码库你调用就完事了 后端的代码库是用C语言去写的 客户端这边使用了最新的SwiftUI去实现APP的 这里面我简单实现交互还是是用OC调用C的办法 然后Swift这边通过桥接去调用O
2021-04-15 15:13:28
168
原创 iOS每日一记之———————————————写了俩个月Swift的小感想
首先Swift是很快这个无可否认 毕竟新事物还是要接受的 哎。。。。列举下我体验到Swift中最不舒服的一些地方吧 1.DEBUG的模式是个神坑 需要自己手动去显示隐藏 不像OC中 一个宏定义就搞定了2.Swift中的强制类型转换 int float string double互相转换真的是神坑 感觉没有OC简单方便 ,还有就是强制解包这个问题 是的是可以使用guard 但是OC中压根
2017-11-16 17:29:58
936
原创 iOS每日一记之———————————————9.3版本以下的一个诡异的闪退BUG
大致上的原因是:iOS 线上版本图片资源格式的问题导致的闪退 具体的情况与解决方法如下:最近上架的app出现了一个诡异的BUG 有多诡异呢 这么说吧 之前公司测试的时候没有任何问题 然后上线了之后 公司有个9.2系统的5S然后就各种闪退 启动了之后 点击tabbar中的任意一个 就会高概率的出现闪退现象 项目中有接入友盟统计 也用符号表查了下崩溃原因 错误根本没办法定
2017-10-16 11:13:54
1815
原创 iOS每日一记之———————————————重点难点总结.....orz
socket套接字的格式 socket半包 粘包 怎么修改socket套接字的格式int socket (int domain, int type, int protocol); //成功:返回套接字描述符;失败:-1 套接字的特性有三个属性:域(domain),类型(type),和协议(protocol)。套接字还用地址作为它的名字。地址的格式随域(又被称为协议族,pro
2017-09-14 11:43:53
483
原创 iOS每日一记之———————————————转swift的学习感想
之前也说了 面试中好多人都问到了我关于swift的东西 实话讲上手容易精通难 哎。。。 公司的新项目刚好要用swift开发 并且公司也给你时间去学习 去排坑 swift还是要学的 为什么不呢 哈哈哈。。。。首先说下 var是变量 let是常量 使用print进行输出打印 这个是最简单的了 。。。。 OC中的方法在swift中变成了func 例如一个swift的减法写法 fu
2017-09-04 19:59:03
1109
原创 iOS每日一记之———————————————一周面试感想.....
之前朋友内推拿到了offer 然后就辞职了 。。。 去年的iOS行情我是清楚的 16年6月的时候我找了2周 大概40个左右的面试 但是当时基本没家公司都有近百人再投 而且去年的面试官普遍装逼的过多 什么runtime自己都不懂就给你问出来了 哎 。。。今年的面试官普遍水平比较高 问的问题大都和项目有关 除了个别公司 比如做直播 会问到推拉流这种 或者做性能优化 app时间启动优化等动能对的 基本
2017-08-31 21:16:39
1503
原创 iOS每日一记之———————————————集成阿里云的移动数据统计SDK (埋点统计)
阿里云的移动统计SDK的导入方法 这些都很简单的此处一笔带过接下来说问题 当年自身项目中有支付宝支付的时候 支付宝会和阿里云的SDK冲突 出现原因和解决方法如下:集成移动数据分析和支付宝的SDK,出现UTDID冲突,可以下载支付宝提供的iOS&Android剥离UTDID的版本,下载链接:https://doc.open.alipay.com/doc2/detail.htm?t
2017-07-24 17:04:21
2047
原创 iOS每日一记之———————————————JS调用OC的代码(客户端实现)
(⊙v⊙)嗯 需求是webView上面的一个按钮 点击按钮调用本地的保存图片方法 说白了就是 客户端实现图片保存本地 然后放出一个接口 让JS去掉用 OK 下面说解决方法之前一直用的是这种- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigation
2017-06-22 16:59:25
750
原创 iOS每日一记之———————————————模仿今日头条栏目选择效果 并且附加cell颤抖效果
嗯 基本上要做的功能就是克雷可深View 的长按 拖动 交换数据 颤抖功能 至于克雷可深View的布局问题就不用我说了吧 都是老生常谈了 嗯 闲话少说 下面上重点代码//给你的克雷可深View添加一个长安手势和pan手势self.gesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@sel
2017-06-16 21:19:24
2158
原创 iOS 每日一记之———————————————仿QQ语音通话隐藏显示效果
最近狼人杀要做缩小效果 缩小的效果就和QQ语音聊天点击收起的动态特效是一样的 。。。。。恩 闲话少说 直接上代码 。。。#pragma mark -- CA缩小动画效果- (void)animateDismissTransition:(UIView *)view rect:(CGRect)endRect{ // 1.获取动画缩放结束时的圆形 UIBezierPat
2017-04-26 17:55:07
1650
原创 iOS每日一记之———————————————为Cell设置部分圆角 类似于ipad的设置界面效果
需求图是这样的整个是个tableView 而且要求第一个cell和最后一个cell是部分圆角 有人会说这很简单啊 你设置第一个cell和最后一个cell的contentView部分圆角不就好了么 然而这样实现不了的、。。。。。 我在cell上面放了个白色的View 然后控制白色View的不同圆角情况依旧失败。。。。。想了半天实在不行加个图片好了 但是因为功能比较大 不能再添加无
2017-04-18 15:02:03
1456
原创 iOS每日一记之———————————————基于Socket的简单封装和使用
Socket 这个概念我就不多说了 不懂得请自行百度接下来进入正题 如何封装socket 基于AsyncSocket 下载地址为 code.google.com/p/cocoaasyncsocket/ 恩 下面开始讲基于它的简单封装了 首先,调用此API时需先引入CFNetWork.framework然后在#import "AsyncSocket.h"就可以直接调用了闲话不
2017-03-01 16:44:50
1601
原创 iOS每日一记之———————————————OC代码混淆
闲话少说 直接进入正题 首先你要创建一个工程吧 然后打开你的终端 输入cd 然后把你的工程拖进去 回车然后 打入一下命令: touch confuse.sh 然后回车之后再输入: touch func.list 回车 就行 这时候打开你的工程 你会发现一个confuse.sh 和一个func.list文件 这时候点击addfile进去 急着 要在根目录下a
2017-02-16 15:01:32
2116
原创 iOS每日一记之———————————————Gif使用新的SDwebimage无法播放的问题解决
之前使用了老版的SDwebimage 是可以播放gif 的 更新后发现忽然不能用了 ( ⊙ o ⊙ )啊!看了下#import "UIImage+GIF.h" 里面发现少了很多以前的方法 现在只能通过NSData 实现gif 以前可以同名字 URL 包括 source去赋值 so 为了解决这个问题 就自己对UIImage 写了一个Category通过URL 展示
2017-01-14 17:14:57
733
原创 iOS每日一记之———————————————图像 放大 居中 裁剪
最近要做一个类似于微信的设置聊天背景图的需求 微信的背景图聊天并不只是单纯的从相册中取出个图片然后显示那么简单。。。。里面还包括了放大 居中 裁剪 等功能so 写了下 下面上 代码 希望能帮助到那些和我有相同需求的人 使用category 对UIImage 写了一个类别// 放大Image- (UIImage*) getImageScaleToSize:(CGSi
2017-01-07 22:09:59
638
原创 iOS每日一记之———————————————自定义UIswitch 控件
看了好多自定义switch控件的demo 大多用UIview + label +imageView 实现的 还有用UIsilder实现的 感觉都不是特别满意 遂 自己写个一个 可以设置开关状态 BOOL isOn;点击也可以触发valueChanged方法 简单粗暴控件 继承与UIcontrolOK 接下来上代码。。。ZHSwitch的。h文件如下#impo
2016-12-28 16:44:37
711
原创 iOS每日一记之———————————————视频 拍摄 与压缩 阿里云OSS断点续传
.....视频拍摄//调用系统录像- (void)addTakeVideo{ _imagePickerVc = [[UIImagePickerController alloc] init]; _imagePickerVc.delegate = self; _imagePickerVc.modalTransitionStyle = UIModalTran
2016-11-25 18:23:35
3566
原创 iOS每日一记之———————————————从相机拍完照片之后翻转90度的问题解决看问题思路
昨天在处理一个问题 图片点击加载大图的时候 图片整个的翻转了90度 而且只有拍照会出现 从图片中取的时候并不会 出现这种情况 so 断点各种打 各种调试 看了图片链接显示的还是竖着的 然而显示的时候就是横竖颠倒了 好奇怪。。。。 刚开始我以为可能是处理图片的时候宽高进行交换了 之后把图片浏览功能里面逐一打断点调试 一行行查找并没有发现有宽高交换的代码 也没发现transfrom之类的代码 。。。之
2016-11-08 16:59:32
559
原创 iOS每日一记之———————————————使用runtime黑魔法 来显示你当前是哪个VC
其实在项目中让你找出你当前定位的VC并不难比如说通过标题什么的 全局搜索下就能找到对应的VC了 但是假如这个标题是通过plist文件获取到的呢 这就尴尬了 上网查了下 可以使用runtime黑魔法去实现这个效果OK 下面是干货时间如果你的VC继承UIViewController 很简单 你写个Category 就行 下面是代码时间 #import "UIViewC
2016-10-19 10:59:36
616
原创 iOS每日一记之———————————————zip文件的解压与压缩 and 自定义字体的使用
一 Zip文件的解压和压缩需要下载下载SSZipArchive 一个很厉害的工具 github上面一搜就出来了 2000多颗星足以证明其的有用性下载好之后呢 使用前:把SSZipArchive文件添加到项目中在target中添加libz.dylib// 解压 NSString *zipPath = @"被解压的文件路径"; NSString *destina
2016-10-18 17:24:29
581
原创 iOS每日一记之———————————————发财鱼写入通讯录
(⊙o⊙)… 何为发财鱼 其实我也不太懂 反正客户那边是要实现这么个功能 你发送一个定时消息 时间到了之后 会有人打电话提醒你 比如说你设置夜里2点半起床尿尿 时间到了后就有人给你打电话 提醒你尿尿了 ....╮(╯▽╰)╭ 其实说白了 就是通讯录中写入一个叫做发财鱼的联系人而已....╮(╯▽╰)╭废话不多说 上代码 void)addFrishNumber{
2016-08-26 17:08:13
731
原创 iOS每日一记之———————————————杂感
近期一直在忙一个im的应用 所以博客就忘记写了 ╮(╯▽╰)╭ 现在项目差不多做完了 从中也学到了一些东西 接下来就是总结提升的部分了.........恩图片多选使用 TZImagePickerController 使用简单操作方便只需要cocopods导入 然后引入头文件即可使用的时候写下面俩行代码 就OK了 //打开相册-(void)openPicLibrary{
2016-08-26 11:43:40
1548
原创 iOS每日一记之———————————————写给自己的......................
发送POST请求:NSMutableDictionary *postDict = [[NSMutableDictionary alloc] init]; postDict[@"uid"] = [SingleManager shareManager].uid; postDict[@"groupid"] = self.groupID; postDict[@"servi
2016-08-04 21:19:37
436
原创 iOS每日一记之———————————————一个简单的列表排序 还有模糊搜索
@interface SJZFriendListController ()/** * 好友列表的tableView */@property (nonatomic,strong) UITableView *tableView;/** * 上面的搜索条 */@property (nonatomic,strong) UISearchBar *searchBar;/
2016-08-02 14:48:02
457
原创 iOS每日一记之———————————————图片圆角的处理
最简单的就是让美工妹妹切个圆的图片喽O(∩_∩)O哈哈~.... 然后[UIimage imageName@:""];如果圆角图片用的地方不是很多的话 可以用 imageView.layer.masksToBounds = YES; imageView.layer.cornerRadius = 50;]去实现....不过如果是tableView上面多处用到了图片圆角 使用lay
2016-08-01 16:13:49
395
原创 iOS每日一记之———————————————集成云信的那些事
实话说云信写的确实不错 开发文档确实不赖.....但是demo 耦合性太强 想从中抽个来个工具条就各种报错....是在没办法了....我把环信的工具条抽了出来...╮(╯▽╰)╭好吧 接下来告诉大家集成时候需要注意的开始的那些cocoapods导入什么的就先不介绍了 那个很简单....导入完了之后需要在用到的地方导入NIMSDK的头文件首先在入口类注册云信的SDK- (B
2016-07-28 16:46:31
1977
原创 iOS每日一记之———————————————Xcode常见的错误 总结
1. 死存储问题这个问题上篇文章提到过,之所以重新罗列出来,是因为这个问题也挺常见的。导致这个问题的原因是,当我们对某个对象直接赋值之后,如果包含这个对象的方法立马就结束了,那么这个对象就会被自动释放,但是我们本身根本还没有用到它,所以就形成了一个死存储代码,这个赋值语句其实也是无效的。2.访问了某个不存在的方法O
2016-06-27 19:04:12
544
原创 iOS每日一记之———————————————iOS应用数据存储的常用方式我见解
iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3Core DataXML属性列表(plist)归档属性列表是一种XML格式的文件,拓展名为plist。如果对象是NSString、NSDiction
2016-06-24 20:56:16
2923
原创 iOS每日一记之———————————————UIApplication的一些见解
UIApplication什么是UIApplication?UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.一个iOS程序启动后创建的第一个对象就是UIApplication对象我们只能通过[UIApplication sharedApplication]获得这个单例
2016-06-24 19:58:01
562
原创 iOS每日一记之———————————————初识HTTP协议 Socket TCP/UDP
一、HTTP协议HTTP本质上是一种协议,全称是Hypertext Transfer Protocol,即超文本传输协议。从名字上可以看出该协议用于规定客户端与服务端之间的传输规则,所传输的内容不局限于文本(其实可以传输任意类型的数据)。二、HTTP请求与响应的内容当我们往服务端发送一条HTTP请求时都发送了哪些东西过去呢?一个HTTP请求所必备的几大要
2016-06-24 19:52:29
765
原创 iOS每日一记之———————————————简单的实现委托 Block代码块 功能 和简单的自定义View
╮(╯▽╰)╭。。。。MVC我的理解并不是特别深入 只能理解其中的一点点东西 ,,,,V需要从C中 剥离出来 其实说白了 就像Xib创建一样 Xib你创建了之后 可以在上面托各种控件 其实那个Xib文件就相当于View 只是用来视图显示的 之后你拖了Xib 控件之后是不是要连线呢 而且会自动生成IBout @property(nonatomic,weak) 之所以用weak 那是因为当前主v
2016-06-22 16:11:15
653
原创 iOS每日一记之———————————————一些自己的看法....Orz
对于已经添加在控制器view中的视图,如果还要对其引用(使用property),最好用weak 弱指针引用;@property (weak, nonatomic) UIView *lightGrayView;因为视图已经加在了控制器的view中,控制器的view已经对其强引用,控制器又被导航控制器...最后application在管理着他们,所以你在引用时没必要用strong引用;
2016-06-21 18:16:55
425
原创 iOS每日一记之———————————————面试杂感。。。。 6月3号到6月14号
6月3号下午 学乐中国面试内容: block MBprogressHUD Xib约束问题 链式编程问题 KVO KVC 大隐 因为没技术面试 暂不评论 6月4号 七元 貌似在什么阿里百川创业基地应该是个卸磨杀驴的公司 让一个月做出个项目 产品什么都没有 赞不评论6月6号 帝壹信用 海威大厦 技术不在 暂不评价 下午 江干区 九堡的一家创业
2016-06-14 23:43:11
2101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人