苹果
王 哪跑!!!
分享技术所想,分享技术所用,分享技术所感
展开
-
iOS iPhone、iPad、Mac等禁止系统摄像头功能
今天接触一个新的项目,项目很奇葩也是第一次接触这样类型,一直以为iOS开发是不允许修改系统权限的,但是今天确实有点颠覆我的认知。项目类型,工厂要用户要屏蔽手机的一些功能(防止泄漏机密),功能要求:1、禁止使用摄像头,听到这里是不是很懵逼,怎么能让手机摄像头不让用呢?2、禁止屏幕截图,当时就是一脑袋❓3、禁止连接数据线传输数据当时看到这三个要求我就是个懵逼状态,最好终于找到了解决办法。查阅官方资料发现,苹果本身就已经考虑到这种需求,已经为我们提供了解决方案。首先,我们要下载一个ma原创 2020-11-26 17:11:01 · 3851 阅读 · 3 评论 -
iOS 获取当前手机所在页面控制器,返回指定页面
在开发过程中有时候我们会使用到获取当前所在页面的控制器那我们如何获取当前控制器呢-(UIViewController *)topViewController{ UIViewController *controller = [self topViewControllerWithRootViewController:[self getCurrentWindow].rootVie...原创 2018-09-29 16:29:43 · 707 阅读 · 0 评论 -
iOS error: couldn‘t remove ‘***‘ after command failed: Directory not
今天打开一个老项目忽然出现上述问题。上述问题的可能行有很多。第一种解决方案选择Xcode->File->Product Setttings,将Build System 设置成Legacy Build System即可不过这种方式在我这里并没有解决,于是我又找了另一种方案第二种方案其实这个报错完整方案应该是限免这样error: couldn't remove '/Users/xxx/Library/Developer/Xcode/DerivedData/xxxx/B.原创 2020-10-19 11:53:28 · 317 阅读 · 0 评论 -
iOS 调整图片尺寸和大小的两个方法
在开发过程中,我们经常会遇到图片压缩功能,下面是我写的图片压缩的两个方法首先是第一种,也是我比较推荐的/// 调整图片尺寸和大小/// @param sourceImage 原始图片/// @param maxImageSize 新图片最大尺寸/// @param maxSize 新图片最大存储大小(kb)+ (UIImage *)reSizeImageData:(UIImage *)sourceImage maxImageSize:(CGFloat)maxImageSize maxSi原创 2020-10-10 13:29:13 · 2944 阅读 · 1 评论 -
iOS 获取视频的缩略图(视频的第一帧)
首先我们要导入三个官方的库#import <AVFoundation/AVAsset.h>#import <AVFoundation/AVAssetImageGenerator.h>#import <AVFoundation/AVTime.h>导入这三个库就是获取的方法了,一中是本地的视频,另一种是网络视频// 获取视频第一帧...原创 2018-09-12 20:43:42 · 4053 阅读 · 0 评论 -
iOS AppDelegate后缀.m改成AppDelegate改成.mm时出现报错
再实现百度地图POI城市检索时,我们需要导入百度SDK以及相关的库,在导库成功后,编译的时候会出现报错信息,这时我们需要将在Xcode中在路径Build Settinngs -> Compile Sources AS 中选择Object-C++或者将任意一个文件.m的后缀改成.mm,通常情况下我们会将AppDelegate改成.mm,但是由于本人实际操作,将Compile Sources AS 中原创 2016-11-28 15:41:40 · 5171 阅读 · 0 评论 -
iOS 二维码扫描以及二维码生成
二维码扫描在开发过程中,我们经常会遇到二维码扫描功能,下面是iOS原生扫描二维码的实现类名:ScanViewController.h 文件#import <UIKit/UIKit.h>#import <AVFoundation/AVFoundation.h>@interface ScanViewController : UIViewController<AVCaptureMetadataOutputObjectsDelegate,UIImagePick原创 2020-09-03 15:59:07 · 601 阅读 · 0 评论 -
iOS 检测设备所连接的WiFi、4G等网络是否真的可以连通
在开发过程我们经常会遇到,获取手机连接的WiFi、4G等状态,并且判断是否连接网络,通常我们使用AFNetworking、Reachability等库,只要判断连接上WiFi或者4G就表明他已经连接网络并使用,但是有时候我们所连接的网络虽然有状态但是不代表一定网络可以连通,显然这两个库并不一定满足我们的使用。所以我在网上查到一位博主发的一个帖子,经测试这个方法确实可用。//测试网络是否同的连接#define kAppleUrlTocheckWifi @"http://captive.apple.co原创 2020-08-24 16:46:20 · 1516 阅读 · 1 评论 -
iOS [UIApplication sharedApplication] openURL等常用的方法使用例如:打电话、定位等
1、打电话[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://电话号码"]];2、发短信[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://电话号码"]];3、去设置设置APP定位权限NSURL ...原创 2018-09-29 16:53:59 · 3643 阅读 · 0 评论 -
iOS 获取当前时间、明天时间以及其他相关的时间
开发过程中,我们开会经常用用到获取当前时间、明天的常用的方法。下面是我总接的获取时间相关的常用的方法,当然了为了方便大家使用,我写成了类方法(+方法),希望对大家有所帮助。/**获取当地当前时间@return 时间字符串*/+ (NSString *)getCurrentTime { NSDateFormatter *formatter = [[NSDateFormatter all...原创 2018-06-16 18:37:06 · 2721 阅读 · 0 评论 -
iOS 封装 加载成功打勾和打叉状态动画
想必大家在加载过程中经常会遇到加载成功或者加载失败后进行一个动画提示,例如:加载完成或者加载失败变成对号或者句号。这个方法我也是看了别人的项目,但是他的项目少了一部分代码,我这里给补上了。下面就是这个动画的的效果这个左面是成功动画、有面是失败动画下面是代码,稍后我也会附上下载封装的代码首先是AnimationView.h文件@interface AnimationView : UIView- (void)startSuccessAnimation;- (void)sta原创 2020-07-13 16:39:51 · 824 阅读 · 0 评论 -
iOS OC mvvm开发模式
相信大家对MVC开发都已经不陌生了,最经典开发模式MVC构成: M:model也就是数据模型 V:View视图 C:Controller控制器Model和View是相互独立的。View只负责页面展示,Model只是数据的存储,那么也就达到了解耦和重用的目的。而今天说的MVVM呢,其就是在MVC的变种而已,兼容MVC,那么他的构成: M:model也就是数据模型 V:View视图 VM...原创 2020-06-19 16:28:36 · 1296 阅读 · 0 评论 -
iOS UITextField输入框内容向下便宜
当我们在开发过程中相信很多人遇到UITextField内容向下便宜的现象,这个现象出现的版本是iOS10以上的问题,那我们要如何处理便宜呢。网上有很多解决方案,但是我感觉都不是很完美,因为他不能从根本上解决这个问题。知道我在网上找到了一个博客才发现这个方法,可以从根本上解决。大家都知道OC是一个面向对象的语音,他的方法等实现本质都是通知,而实现就是通过runtime实现,runtime可以说是OC语音的底层实现,Runtime是iOS的核心之一,我们写的OC代码底层都是由他实现的,经过遍译后,都是Run原创 2020-06-16 16:57:51 · 253 阅读 · 0 评论 -
iOS H5页面调用微信或者支付宝进行支付
一说支付,大多数人都会理解支付方式是下载微信和支付宝SDK进行支付,但是其实还有其他的方式,就是H5调用系统支付宝和微信进行支付。H5支付可能很多人认为是加载完页面剩下的就是页面完成即可,但是实际没有那么简单。下面介绍一下H5调用支付宝和微信支付。首先是支付宝,支付宝在支付这一块是非常专业的他的代码也是非常简单的。既然是H5调用,那么就少不了网址拦截。这里加载页面我是使用的WebView这里说一下,这里微信和支付宝都是使用这个方法里进行- (BOOL) webView:(UIWebVi原创 2020-06-16 12:08:35 · 4075 阅读 · 0 评论 -
iOS 解决WebView加载中文链接失败原因
在开发过程中经常会遇到使用webView问题,正常我们家在webViewNSURL* url = [NSURL URLWithString:[NSObject isEmptyOrNull:_linkString] ? @"" : _linkString];NSURLRequest *request = [NSURLRequest requestWithURL:url];//创建NSURLRequest[_webView loadRequest:request];这样我们就加载了webView原创 2020-06-08 15:15:23 · 1862 阅读 · 0 评论 -
iOS 代码调用打电话
iOS 代码调用打电话很简单,代码如下:url为电话号码,[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://%@",url]]];这样我们便可以进行打电话(当然你的电话和拨打电话必须没有欠费)原创 2016-12-21 13:43:18 · 494 阅读 · 0 评论 -
iOS 如何实现父视图透明度变化,它的子视图不变
实现这个效果很简单,只要一行代码即可:self.backgrund_view.backgroundColor = [[UIColorblackColor] colorWithAlphaComponent:0.3];0.3便士这个父视图self.backgrund_view的透明度,但是它的子视图透明度还不随其变化原创 2016-12-22 09:28:56 · 598 阅读 · 0 评论 -
iOS 点击屏幕获取,获取点击位置颜色和对应RGB
有时我们会用到获取点击某一点的颜色或者RGB,就好比,控制灯的颜色,一个颜色板,点击颜色板上的红色,灯就会变红,这个时候我们就会使用到。下面就是实现方法原理,首先获取一张屏幕截图,在获取截图上面的颜色。1 获取屏幕截图,但不是真的会截图,只是生成了一个Image对象/**获取屏幕截图@return 返回屏幕截图*/-(UIImage *)fullScreenshots{ UIWindow ...原创 2018-05-16 11:42:04 · 2928 阅读 · 0 评论 -
iOS :获取沙盒里的图片为空,通过[NSData dataWithContentsOfFile:newstr]和initWithContentsOfFile原因
有时我们会将图片进行存储,储存到沙盒路径下面,等我们用到的时候再去读取。读取的时候一般有两个方法NSData *imageData = [NSData dataWithContentsOfFile:@"路径"];UIImage* image = [[UIImage alloc] initWithData:imageData];还有一个NSString *aPath3=[NSString st...原创 2018-06-01 08:56:59 · 6115 阅读 · 1 评论 -
iOS AppStore 审核驳回 关于 UIBackgroundModes 定位问题
我们在提交AppStore是驳回信息 会收到下面的邮件,发件人 Apple2. 5 Performance: Software RequirementsGuideline 2.5.4 - Performance - Software RequirementsYour app declares support for location in the UIBackgroun原创 2017-06-08 15:58:04 · 10622 阅读 · 0 评论 -
iOS 系统自带UITabBarController 字体颜色以及图片的控制
首先,当我们设置字体颜色的时候,我们要想随意设置成自己想要的选中字体颜色,以及未选中字体颜色,选中图片以及未选中字体颜色的设置通常情况下,我们会直接设置字体颜色的镂空色。tabBar.tintColor后面我们只要写上自己想要的颜色。但是这样为选中的颜色会变成系统自带的颜色。那我们要怎么设置未选中的字体的颜色呢。下面这个代码后面就可以写上字体的颜色。tabBar.u原创 2017-08-30 16:51:20 · 1933 阅读 · 0 评论 -
iOS 直接改变.html后缀的链接所对应的html页面样式,并获取html的标题,图片地址,id,内容
有时候为了节省时间、资源和财力,我们一般会直接对一个.html的页面进行修改。改成自己想要的样子,但是我们不是通过服务器请求数据,而是通过一个html后缀的网址。那我们因该怎么来实现呢。上代码一链接下面的链接为例@"http://mini.eastday.com/mobile/1709061305445179.html"这个链接打开以后我们就是一个页面,那我们要怎么获取数据呢,原创 2017-09-11 15:53:19 · 997 阅读 · 0 评论 -
iOS 判断输入框内容是否为数字,并判断输入首位内容是否为0,时时获取输入的新内容
_TextField.text 输入框内容,string 为输入新内容//1. 判断某字符串是否是数字- (BOOL)isPureInt:(NSString *)string{ NSScanner* scan = [NSScannerscannerWithString:string]; int val;原创 2017-02-07 09:58:43 · 3413 阅读 · 0 评论 -
iOS UITextView实现字数的限制以及字数的累计
//输入最大字数#define MAX_NUMBER 200#pragma mark 在内容改变的时候调用,会记录UITextView内容的个数,当内容超过返回NO- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSStrin原创 2016-12-03 14:37:21 · 693 阅读 · 0 评论 -
iOS 极光推送
1,到极光官方品台下载JPushSDK,在到apple developer申请推送证书,再到极光推送将该APP添加应用。2.在到Xcode Capabilities中将推送打开,3.在将JPushSDK导入工程下,并导入相关的依赖库。4.接下来便是粘代码在AppDelegate.hstatic NSString *appKey =@"输入APP KEY";sta原创 2016-12-01 16:52:28 · 479 阅读 · 0 评论 -
iOS 本地推送
1.首先在一个类#import"TrainingEvaluatiOrder.h"中声明两个类方法// 设置本地通知+ (void)registerLocalNotification:(NSInteger)alertTime;+ (void)cancelLocalNotificationWithKey:(NSString *)key;2.在.m文件中实现两个方法,原创 2016-11-30 09:46:19 · 396 阅读 · 0 评论 -
iOS ShareSDK 分享
1.到官方平台下载ShareSDK,并将SDK导入到工程目录下2.在build phases中导入相关的库这些苦的内容可以根据自己需求添加3.再到平台申请该APP所用到的Key:registerApp4.就是粘代码[ShareSDKregisterApp:@"输入平台你申请的Key" activePlatforms:@[原创 2016-11-30 09:27:29 · 494 阅读 · 0 评论 -
iOS百度地图POI的使用
1.首先要将你的APP导百度开放平台申请秘钥Key2.下载iOS百度地图SDK以及相关的库3.在导入库以后,再到build phaese添加一些相关的库,这些库可以只导入你想使用的4.接下来就是将build setting ->compile sources as 选择Object-C++或者将文件目录下的任意文件改成.mm后缀,但是我建议使用后者,并且更改创建工程时生成的ViewCo原创 2016-11-29 13:07:24 · 1216 阅读 · 1 评论 -
iOS 高德地图 百度地图 以及苹果自带的地图URI的使用 以及CLLocationManager的使用
1.首先Xcode导入一个自己带的官方头文件#import在创建: self.locationManager = [[CLLocationManageralloc] init]; self.locationManager.delegate = self; self.locationManager.desiredAccuracy =原创 2016-11-29 12:57:00 · 2604 阅读 · 0 评论 -
iOS 判断APP是否打开定位,并实现直接跳转打开定位
首先我们要向导入一个官方提供的库#import 导入以后就可以写代码了,当然了为了方便起见,个人建议将下面的方法封装成一个工具类,这样的话在任何位置都可以调用我将该方法封装成了+方法(类方法),类名:NSXYCToolObject :NSObject.h/** 判断是否打开定位*/+ (BOOL)determineWhetherT原创 2017-11-30 10:15:02 · 9875 阅读 · 0 评论 -
iOS 手机指定页面旋转和恢复
开发过程中我们经常会使用屏幕旋转功能,但是我们手机又不支持屏幕横屏,那我们如何简单的实现屏幕旋转首先就是最关键的一个方法,方法很简单,就是在AppDelegate中实现一个方法#pragma mark - add method- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { r原创 2020-05-29 16:11:26 · 373 阅读 · 0 评论 -
iOS UITableView 、UICollectionView 刷新数据(全部和单条)
在iOS 开发过程中,使用最多的控件之一就是UITableView ,UICollectionView相对UITableView用到的就是比较少了,两个空间的刷新估计就不用我费什么话了,下面一句带过//tableView[_tableView reloadData];//collectionView[_collectionView reloadData];接下来重点说一下刷新指定的某一 cell,这个用到的地方虽然不如全部刷新的地方多,但是还是会用到,我们下面重点说一下这个方法首先说一下原创 2020-05-18 17:14:18 · 4477 阅读 · 0 评论 -
iOS 基础动画:UIViewAnimationOptions
在开发过程中我们经常会遇到一些简单动画、例如旋转、翻页等效果,这个动画效果iOS UIViewAnimationOptions已经为我们提供了下面就为大家介绍一下这些动画效果:第一部分就是一些常规动画 UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动 UIViewAnimationOptionAllowUserI...原创 2020-05-06 09:19:45 · 2155 阅读 · 0 评论 -
iOS MQTT 使用
开发中我们经常使用到长连接,需要时时获取到最新数据状态,常用的时时获取最新状态的方法用很多,但是开发中一般都会使用socket长连接。针对这个也有一个库CocoaAsyncSocket,对socket也已经封装的很好,我们也只需要下载对应的库就可以了,下载链接:https://github.com/robbiehanson/CocoaAsyncSocket今天介绍一下MQTT长连接。coc...原创 2018-12-03 11:23:53 · 2563 阅读 · 1 评论 -
iOS 提供类似安卓吐司,以及时间相关的方法等工具类
提供类似安卓吐司,以及时间相关的方法等工具类原创 2017-10-26 08:48:45 · 372 阅读 · 0 评论 -
iOS WebView 忽略不受信任的https证书(SSL)
大家在开发过程中经常会使用到WebView,但是在使用WebView经常回家再Https,可是有一些Https是不受信任的,这个时候我们就要跳过这个Https信任这个过程,那我们如何跳过这个过程呢?为了方便使用,我们创建一个类别。类别名字NSURLRequest+IgnoreSSL.h#import <Foundation/Foundation.h>NS_ASSUM...原创 2020-03-21 15:06:50 · 4472 阅读 · 0 评论 -
iOS TableView的Cell中有Textfield时放置键盘遮挡问题
在开发过程中,大家经常会用到tableView,但是有的时候我们需要在TableViewCell上拖拽或者手写一个输入框,既然是列表不免就会遇到点击输入框会出现键盘将输入框挡死问题,那我们要如何解决呢?看到网上有很多人都是通过计算键盘高速和tableView偏移量等来进行处理,方法是有效但是个人感觉太麻烦,其实苹果已经向我们提供了解决方案,而且操作十分简单。具体方法如下:- (vo...原创 2019-12-16 16:56:57 · 953 阅读 · 1 评论 -
iOS 根据数组里面元素字典中的某个key对数组进行排序
在开发过程中我们不免会遇到根据数组里面的某个字段,对数组里面的元素进行元素,但是如果数组里面的元素是字典,并且根据数组里面的字典,并根据字典的某个key进行排序。下面方法就是排序方法,其实一说到排序很多人会想到冒泡排序、选择排序等方法,当时本人在开发过程中使用过上面两种方法,但是发现排序失败,不知道大家有没有遇到,但是我却遇到了,后来我改成下面的方法,解决了排序问题 //设置新的数据字...原创 2019-12-03 13:26:43 · 1370 阅读 · 0 评论 -
iOS 上架被拒(一)prefs:root 被拒
当我们提交审核过程中经常会遇到各种各样的审核被拒原因,其中就包含了prefs:root 被拒当我们被拒后会收到下面这个驳回原因Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the...原创 2019-11-26 10:47:16 · 1301 阅读 · 0 评论 -
iOS No accounts with App Store Connect access have been found for the team "[My Team Name]".
相信很多小伙伴上线都遇到下面问题No accounts with App Store Connect access have been found for the team "[My Team Name]". App Stor...翻译过来就是没有找到“[我的团队名称]”团队的App Store Connect access账号。App Store分发需要App Store Connect...原创 2019-11-26 10:31:51 · 3850 阅读 · 1 评论