ios开发

iOS开发之头像裁剪

风格不统一 提交于 2020-03-05 06:49:21
iOS开发之头像裁剪 // // CrapPhotoViewController.h // StupidFM // // Created by 寒竹子 on 15/6/18. // Copyright (c) 2015年 寒竹子. All rights reserved. // #import "ParentViewController.h" @class CrapPhotoViewController; @protocol CrapPhotoViewControllerDelegate <NSObject> // 点击确定完成图片裁剪的代理方法 - (void)imageCrap:(CrapPhotoViewController *)crapViewController didFinished:(UIImage*)editedImage; // 点击取消后的代理方法 - (void)imageCrapDidCancel:(CrapPhotoViewController *)crapViewController; @end @interface CrapPhotoViewController : ParentViewController @property (nonatomic, assign) NSInteger tag; @property (nonatomic, weak)

iOS开发~sizeClass和autolayout

本秂侑毒 提交于 2020-03-05 03:26:30
sizeClass和autolayout,看来不得不开始放弃frame的写法,收集点资料集中学习下 Adaptivity User Interfaces苹果官方文档: https://developer.apple.com/design/adaptivity/ sizeClass苹果官方文档: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/_index.html#//apple_ref/doc/uid/TP40014436 autolayout苹果官方文档: https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/_index.html#//apple_ref/doc/uid/TP40014226 Auto Layout Guide: https://developer.apple.com/library/ios/documentation/userexperience/conceptual/AutolayoutPG/Introduction/Introduction.html AutoLayout相关概念介绍和动画demo http://www.cocoachina.com/ios

【iOS开发】观察者模式

前提是你 提交于 2020-03-03 19:24:28
定义了一种一对多的关系,可以让多个观察者同时监听某一个对象或对象属性的变化。 被监听的对象在状态变化时,会通知所有的观察者,使他们能够及时的处理业务逻辑和代理delegate模式的对比。 iOS提供了KVO机制实现方式 关键步骤: 1. 注册监听 [ self . webView addObserver : self forKeyPath : @"estimatedProgress" options : NSKeyValueObservingOptionNew context : nil ] ; self作为监听者,接收事件 监听self.webView的estimateProgress属性 在NSKeyValueObseringOptionNew的时候发送通知 2. 移除监听 [ self . webView removeObserver : self forKeyPath : @"estimatedProgress" ] ; 3. 接收通知 - ( void ) observeValueForKeyPath : ( NSString * ) keyPath ofObject : ( id ) object change : ( NSDictionary < NSKeyValueChangeKey , id > * ) change context : ( void * )

2020年,如何成为一名 iOS 开发高手!

我是研究僧i 提交于 2020-03-03 15:29:38
2020年对应程序员来说,是一个多灾的年份,很多公司都进行了不同比例的优化和裁员。 等疫情得到控制后,将会是找工作的高峰期 ,从去年的面试经历来看,现在只会单纯写业务代码的人找工作特别难,很多大厂的面试官都会针对 底层原理 进行提问, 考察你是否真正搞懂底层的机制和原理。环境的要求越来越高,所以我们也要积极转变,踏踏实实的学习。 如何成为一名 iOS 开发高手 ,是很多iOS开发人员的终极理想。作为一名iOS开发工程师,除了需要掌握基础的iOS知识,能够熟悉的进行应用开发之外,**了解iOS底层、数据结构算法、性能优化以及架构能力,也是成为 iOS 开发高手的必备技能。**进一步技术储备有: 跨平台、音视频视觉与逆向安全攻防 等技术需要学习掌握! 做一名有高度的工程师 作为一名技术工程师,不管你是从事前端开发还是后端开发, T 型技术人才理论都比较适合,所谓的“T”指的是横向和纵向两个维度。纵向解决的是深度问题,横向解决的是广度问题。并且我比较推崇先有深度再有广度,因为技术都是一通百通的。 作为一个有高度的移动开发工程师,需要能纵向深入,也要能横向全面地思考每一个问题 。比如说,我们需要实现一个数据埋点上报系统,团队希望治理数据的准确性和实时性问题,如果站在客户端的角度上看,就是思考如何去实现一套数据不会丢失、实时性高以及高性能的埋点上报组件。我们知道,这里面的进程模式、存储模型

iOS 开发中音频队列播放音频

孤街醉人 提交于 2020-03-02 19:10:24
2012-07-17 19:59:24 | 分类: ios | 字号 订阅 第一部分 用 到了AudioToolbox这个音频接口,总结下,希望对需要的朋友有帮助。AudioToolbox这个库是C的接口,偏向于底层,用于在线流媒体音 乐的播放,可以调用该库的相关接口自己封装一个在线播放器类,AudioStreamer是老外封装的一个播放器类,有兴趣的朋友可以研究下。 其实IOS库中有两个可以播放在线音乐的播放器类,AVPlayer和MPMusicPlayerController 这两个做简单的播放还不错,但是如果要做专业的音乐播放项目,功能还不够强大,例如:边听边存、断点续传、播放事件等等都无法满足。一下是以前做的笔记,仅供参考 播放流程图: 数据结构及接口说明: C代码 ? 数据类型 1.AudioFileStreamID 文件流 2.AudioQueueRef 播放队列 3.AudioStreamBasicDescription 格式化音频数据 4.AudioQueueBufferRef 数据缓冲 ? 回调函数 1.AudioFileStream_PacketsProc 解析音频数据回调 2.AudioSessionInterruptionListener 音频会话被打断 3.AudioQueueOutputCallback 一个AudioQueueBufferRef播放完

iOS开发之使用苹果测试工具TestFlight(进行内部和外部测试)

泄露秘密 提交于 2020-03-02 12:35:56
/*--> */ /*--> */ 一、测试工具介绍: 1、 TestFlight是苹果公司在iOS8,Xcode6推出来的新工具,用于将App beta版本进行流水化测试。TestFlight整合进了Appstore Connect,你可以通过电子邮件来邀请你的Beta测试成员,并且允许用户在app上架前做一个上架前的beta版测试。 二、内部测试操作步骤: 1、使用手机客户端下载TestFlight App 2、 在 iTunes Connect(iOS12更改为Appstore Connect)用户添加测试员 3、 打开用户和职能 4、 添加用户 5、 填写用户信息(姓名,电子邮件) 6、注意 用户职能涉及到管理权限( /*--> */ /*--> */ 管理,财务,App管理,开发人员,营销,销售,客户支持和报告 ) 7、填写协议,付款,财务报告,App状态报告 地区 8、接收苹果给测试者发送的邮件( 邮件过期比较快请告知测试者尽快查收,并请测试者在邮件链接中登录自己的Apple账号即可。如果测试者没有收到邮件请重新发送邮件,否则后面的步骤进行不了) 9、查收邮件并在链接中登录Apple ID账号,这样就可以添加测试员 (9.1)接收邮件,获取验证码 (9.2)打开手机TestFlight App (9.3)填写TestFlight App 验证码 (9.4

iOS 开发的9个超有用小技巧

那年仲夏 提交于 2020-03-02 08:30:07
1.如何快速的查看一段代码的执行时间。 #define TICK NSDate *startTime = [NSDate date] #define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow]) 在想要查看执行时间的代码的地方进行这么处理 TICK //do your work here TOCK 2.如何快速查看一个函数的调用次数,且不添加一句代码。 如下图 这种方法适合于一个if方法,一个for循环,而且不会中断程序,切不需要加一句代码。但是一定要记得选中下面的automatically continue after evaluting actions; 3.在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。 self.layer.allowsEdgeAntialiasing = YES; 4.instrument中time profile中的self, #self,%self各代表什么 ? 下面引用了一下网上的具体内容 “Self is "The number of times the symbol calls itself." according to the Apple Docs on the Time

ios开发学习

本小妞迷上赌 提交于 2020-03-02 01:49:23
1.快捷键 1)command+向上箭头可以切换到上一级目录 2)command+shift+o快速查找符号 3)command+r运行程序,command+.停止程序 4)调试:F6单步,F7跳入,F8继续 5)command+o打开文件,command+w关闭窗口 6)command+Ctrl左右箭头前一个后一个编辑点 2.给xcode工程改名: 右上角identity and type那里改名,会弹出一个对话框,点击确定 Product->scheme->Edit scheme 和manage scheme里面都要改成新的名字 3.指定项目包含目录,Build Settings->Search Paths 4.添加静态库,选中项目,点击targets->Build phases->link binary with library,将work space的静态库加进来(目前加的是ios版本的) 5.如果报DerivedData下面无法创建和删除文件,那么进入到/Users /username/Library/Developer/Xcode/DerivedData/,手动删除文件 6.如果报错:xcode the application could not be verified,这是因为证书不匹配。将设备上已安装的的app手动删除再次安装。 7

iOS开发UI篇—CAlayer层的属性

北城余情 提交于 2020-03-02 01:27:33
i OS开发UI篇—CAlayer层的属性 iOS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) @property CGPoint anchorPoint; 称为“定位点”、“锚点” 决定着CALayer身上的哪个点会在position属性所指的位置 以自己的左上角为原点(0, 0) 它的x、y取值范围都是0~1, 默认值为(0.5, 0.5) 2.图示 anchorPoint 它的取值为0~1 红色图层的anchorPoint为(0,0) 红色图层的anchorPoint为(0.5,0.5) 红色图层的anchorPoint为(1,1) 红色图层的anchorPoint为(0.5,0) position和anchorPoint 添加一个红色图层到绿色图层上,红色图层显示到什么位置,由position属性决定 假设红色图层的position是(100,100)   到底把红色图层的哪个点移动到(100,100)的坐标位置,锚点。   红色图层的锚点是(0,0) 红色图层的锚点是(0.5,0.5) 红色图层的锚点是(1,1)

ios开发注意事项

≡放荡痞女 提交于 2020-03-02 00:11:15
一、CocoaPods第三方类库管理工具 (1)切换ruby的源,sudo gem sources --remove https://rubygems.org/ sudo gem sources -a http://gems.ruby-china.org/,安装sudo gem install cocoapods (2)注册账号,pod trunk register ‘电子邮箱’(发送验证链接)name --description=‘device name’ (3)在工程目录 touch Podfile,文件内容格式为: platform :ios target 'project name' do pod end (3)pop install卡,切换为pod install --verbose --no-repo-update 来源: CSDN 作者: 青山ing 链接: https://blog.csdn.net/weixin_42516594/article/details/104600177