iOS
化夜永寂
一个小菜鸟的学习之路……………………
展开
-
APP中的用户类
做APP,涉及到用户登录的,就避免不了用户的信息本地化,更有甚者是持久化存储。当用户登录之后,会生成多个用户属性,比如用户的昵称,头像,身份token等,在APP中多处可能都用到用户的基本信息,比如头像和昵称,是不是在每次用到的时候都需要请求一次呢,那当然不是必要的,下面介绍下曾经在工作中遇到的几个方案:1.用户登录之后,使用单例实例化用户类,属性赋值,属性修改。单例保证当前类有且只有一个对象被实例化,相当于在APP中出现一个大家都能沟通的对象,A可以从这个对象获取想要的属性值,并且修改了某个属性,此时原创 2021-02-24 15:59:38 · 336 阅读 · 0 评论 -
三方登录
使用第三方登录:常用的就是微信登录,apple登录,现在比较流行的手机号码一键登录。这里需要根据手机系统的不同,iOS13才有的apple登录,手机是否安装微信等等一系列情况。以微信和apple这两种举例if(version >= iOS13){ If (wechat) { wechat && apple } else { apple }}Else { If (wechat)原创 2021-02-22 16:07:48 · 194 阅读 · 0 评论 -
iOS 下拉刷新,上拉加载崩溃
列表展示数据的时候,往往会用到分页,第三方MJRefresh,执行上拉加载的时候将获取到的数据添加到列表的数据源中,执行下拉刷新的时候,一般是将回归初始状态,分页归零,列表数据源归零。这就涉及到归零时机的问题,为了防止在滑动过程中崩溃,最好是在获取数据的网络请求成功之后的回调中清空数据源。判断清空的条件可以为请求参数的分页参数为初始值的时候。原创 2018-01-28 11:37:26 · 617 阅读 · 0 评论 -
iOS 图片上传被后台给旋转了90度
图片在不裁切的情况下上传到服务器,结果返回的图片被强制转了90度,很生气.当使用相机拍照之后,或者是相册选择照片之后,如果没有开启照片的编辑,那么后台就有可能会把 照片进行旋转,这个不知道是为啥.所以在不开启裁切,后台给旋转的情况下,使用下面的方法进行处理.可以在上传之前处理,也可以在imagepicker的didfinish的代理方法中处理. if (image.imageOrientat...原创 2017-12-21 17:04:30 · 2039 阅读 · 0 评论 -
iOS 选取图片 后台给旋转 多图上传 代理方法不执行
经历了一个新的项目,也是一个新的团队.图片上传,成了重点.1.图片上传服务器之后,在获取的时候被旋转了90度. 解决办法为:将回调的image对象进行如下处理,if (image.imageOrientation != UIImageOrientationUp) { UIGraphicsBeginImageContextWithOptions(image.size, ...原创 2018-02-09 16:39:08 · 293 阅读 · 0 评论 -
iOS 上线问题
1.注意ipv6网络协议 在阿里买的服务器,默认支持这个协议,但实质并不是真正的ipv6,有的app上架被这个原因拒绝,但是阿里有办法.为此特意查找了AFN2.0,发现早在那个时候就已经支持ipv6了,所以放心大胆的告诉服务端,去搞一搞ipv6.2.注意获取权限的提示文字. 现在要求获取权限提示文字,要求写明用途. 例如:app获取相册权限,以上传图片作为用户头像....原创 2018-02-09 16:59:32 · 209 阅读 · 0 评论 -
iOS 动画
有时候页面在用户执行操作或者是完成操作的时候,需要给出一定的提示,可以使用MBProgressHUD,但是遇到有情怀的UI,设计,就要让你按照它的要求去做动画,当然,去做这个动画的方法有很多。这里介绍一种使用.json文件做动画的方法,支持的终端也是很丰富,苹果,安卓都支持。准备工作:1.一个.json动画文件,这个可以使用AE做,也可以去网站自己找:https://www.lottief原创 2018-01-30 10:40:39 · 206 阅读 · 0 评论 -
iOS iphonex底部安全区域
适配iPhone X,对于一般的app,只支持竖屏展示的,底部就成为了适配的重点,当在初始化控件使用self.view.safeAreaInsets.bottom获取底部安全区域高度的时候,发现获取到的值为0,并不是期望的34.前提是你用的autolyout布局,问题出在哪,不是你的iPhone X是假的,是真的获取不到。只有在VC的 - (void)viewDidLayoutSubview...原创 2018-08-07 16:06:48 · 17185 阅读 · 0 评论 -
iOS weex使用
阿里 Weex,一个UI跨平台的框架,使用vue编写,编译为.js文件,供移动端进行调用iOS 端使用 pod ‘WeexSDK’ 引入sdk一.weex使用,直接上代码吧1.appdelete中执行的代码,其中WXEventModule是交互相关,WXImgLoaderDefaultImpl是加载图片用到的- (BOOL)application:(UIApplica...原创 2019-05-22 15:06:27 · 534 阅读 · 0 评论 -
被遗忘的iOS8
*1.做iOS开发,屏幕适配,这个还好,目前只有两个类型的屏幕去适配,再有一个就是系统兼容适配。**a.写文章的这一刻也不记得iOS8 是什么时候发布的了,作为一个有情况的iOS开发人员,app最低系统支持当然是xcode能够选择的最低iOS版本,即iOS8。b.上个项目中遇到的两个地方,当年做开发的时候是非常注意的点,但是前几天都忽略了,尘封的iOS8手机,跑程序,崩了,崩了,崩了,崩了,下...原创 2019-05-22 15:22:02 · 211 阅读 · 0 评论 -
iOS textFiled密文明文切换的问题
app在登录的时候需要输入密码,一般情况下,密码的输入是使用密文输入的,使用的textFiled的原创 2017-03-25 09:54:28 · 2763 阅读 · 0 评论 -
iOS 使用masonry布局,并实现展示动画
实现动画的方法,一般都是使用以下方法 [UIView animateWithDuration:0.2 animations:^{ }];注:1.当使用frame布局的时候这个方法只需要在回调内部改变要出现动画的view类的frame就可以了.2.当使用masonry的时候,需要多一步操作.代码如下:比如,lineView需要出现动画,首先要做的是更新lineVie原创 2017-12-13 16:43:14 · 1501 阅读 · 0 评论 -
iOS tableView自动行高
1.在使用tableView展示页面的时候,cell中一般是展示图片和文字,由于展示内容的不同,很多时候就需要用到自动行高.使用需要下面的几个操作,布局以masonry为例.步骤1:在tableView的设置中需要以下两行代码.第一行代表的是预设高度为100,第二行设置行高自动.在实现完当前步骤的时候,不要在设置任何关于行高的属性或者是代理方法. self.tableVi原创 2017-12-13 16:35:46 · 2422 阅读 · 0 评论 -
iOS 控件加阴影
下面以给cell加阴影为例介绍加阴影的方法self.contentView.backgroundColor = [UIColor whiteColor]; self.contentView.layer.shadowColor = [UIColor blackColor].CGColor; //阴影的角度,分别是靠右和靠下。 self.contentView.layer.原创 2017-07-28 10:36:02 · 398 阅读 · 0 评论 -
setupAutoHeightWithBottomView方法使用cell自动高度
介绍:使用sd_alyout写页面的时候,由于页面中cell数量不多,就想着使用一个cell,根据indexPath来动态的改变cell显示的控件,于是在后面就踩到坑了,好几天都没找到为啥,终于在一个天气炎热的午后,我找到为啥了,现在跟大家说一下。我把SD_Layout的demo做的实验,这个文件比较好找,比较容易对比,改的是demo中编号为3的代码。1.先看vc上面这是给原创 2017-07-17 15:59:41 · 1611 阅读 · 0 评论 -
iOS 左上角的返回按钮的几种设置
当使用UINaigationController执行Push到下个页面的时候,左上角的返回按钮默认显示的上个页面的title,这时我们会手动的去修改它。1.第一种修改方法如下,这种方式会造成左滑手势失效的情况,所以设置按钮的目标动作回调。 UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc]initWithTitle:@“美女原创 2017-07-04 15:01:45 · 11188 阅读 · 1 评论 -
使用Lable展示emoji表情
1.在UIKit中的UILabel默认是可以展示emoji表情的,只是对于表情的编码方式有要求,微信中的表情信息的样式是这样的这里是信息的文字内容其中的 1f380 3120e3 就是两个表情,但这是16进制的编码方式,在label中是不会显示表情的,我们就需要转换编码方式其实就是unicode编码。2.转换编码的之前需要把要转换的文本拿出来,下面的代码就是把上面的字符串传入。原创 2017-06-24 10:01:32 · 2170 阅读 · 0 评论 -
iOS MMDrawerController的自定义开闭
MMDrawerController这个第三方库在网上随处可以找到,github上也有源码,使用步骤在这就不再论述,如果有需要可自行百度。最近需要做个抽屉效果的例子,于是就使用了MMDrawerController,但发现在MainViewController上执行push之后,左滑返回的手势和抽屉的手势冲突了,造成了左滑返回不能用。解决这个问题无非就是抽屉的开和关的设置,原创 2017-06-22 10:47:16 · 773 阅读 · 0 评论 -
iOS NavigationBar的占位问题
使用NavigationController的时候,在页面中添加视图的时候,NavigationBar造成的偏移量的问题。(之前都是遇到的时候就手动的改变偏移量使其能够正常显示,并没有深究过)。总结:self.edgesForExtendedLayout = UIRectEdgeTop;self.edgesForExtendedLayout =UIRectEdgeNon转载 2017-03-28 16:15:22 · 916 阅读 · 0 评论 -
iOS 有关旋转屏幕的问题
1.首先你的项目要支持横屏,大部分的需求是某些页面支持横屏显示,并不是这个app所有的页面都可以支持横屏。在general下的deployment info 下的device orientation要选择支持横屏,一般是勾选Landscape left和right选项。这样你的程序的页面就支持横屏了。2.现在就要根据业务需要在每个页面灵活的设置当前页面需不需要横屏。这里有两个方法是原创 2017-03-24 10:02:28 · 240 阅读 · 0 评论 -
iOS UIimage对象的生成
//在oc中imageView加载图片的方式很多种,可以通过存储的路径、图片的名称、data类型转换、网络加载等等。 //代码中生成UIImage对象的时候,常见的有下面两种方法,个人理解,望大家指正 //1.使用image的name加载图片,这样的方式特点就是在第一次加载该图片的时候是从该图片的存放路径加载,有可能是assets文件夹,也有可能是工程下的某个文件夹。但是第二次原创 2017-07-28 10:54:47 · 706 阅读 · 0 评论 -
iOS 11 关于相册权限的问题
Ios 11系统关闭了查看相册的权限,不需要在plist中添加权限就可以打开相册,同样在打开相册的时候也没有权限的访问.但是在拍摄照片的时候要注意了,拍摄照片的时候一般是会保存到本地相册的,这个时候就需要增加一个新的权限访问,就是保存照片到相册的权限.如果有保存照片到相册的代码,但是没有开放此权限,程序是会崩溃的.后果还是很严重的解决办法:1.plist 的添加方法是:添加原创 2017-12-13 16:31:09 · 2839 阅读 · 0 评论 -
iOS 本地存储,缓存和清除
在开发APP的时候,通常会用到本地的数据存储,减少流量的使用和服务器的压力.下面几种常用的方法1.在缓存图片的时候,SDWebImage是比较好用的一种方式,操作简单,只需要一个图片地址,设置占位图.记住设置options为SDWebImageRefreshCached存: [self.imagesView sd_setImageWithURL:[NSURL URLWithS原创 2017-12-13 16:52:39 · 2766 阅读 · 0 评论