iOS
文章平均质量分 74
imJackXu
这个作者很懒,什么都没留下…
展开
-
iOS Siri相关开发应用
iOS开发中Siri的应用原创 2024-03-27 18:25:48 · 1532 阅读 · 0 评论 -
M1芯片升级Mac OS Ventura/Xcode14.3报错‘BUAdSDK/BUAdSDK.h‘ file not found
M1芯片升级Mac OS Ventura/Xcode14.3后,真机运行正常,但是模拟器运行报错’BUAdSDK/BUAdSDK.h’ file not found,找不到穿山甲SDK的头文件。按照以往的处理方式,使用Rosetta模式打开Xcode就行,但是升级后竟然没了此选项…原创 2023-04-18 12:20:27 · 1059 阅读 · 0 评论 -
【iOS16】锁屏小组件总结
关于iOS16新增锁屏小组件的简单设计介绍原创 2022-07-11 14:19:01 · 7383 阅读 · 6 评论 -
iOS显示电子数字
效果如图:通过Graphics绘制,使用只需要两行代码:let j = XCDigitView(frame: CGRect(x: 250, y: 720, width: 100, height: 200))j.value = 0完整代码:实现思路:就是完整绘制一个8字,每一画根据当前显示的数字,决定这一画的颜色,举例绘制最上面一横: // 第一横 func render1(context:CGContext) { if (value == 0 || value原创 2022-05-23 18:58:46 · 286 阅读 · 0 评论 -
App Tracking Transparency被拒解决
App Tracking Transparency如果使用了App Tracking Transparency,苹果要求在iOS 14.5及以上的版本中必须在弹框取得用户同意后,才可以跟踪用户。否则会被拒:解决方案参照官方文档说明(https://developer.apple.com/documentation/apptrackingtransparency),只需要简单两步:1、添加NSUserTrackingUsageDescription声明打开info.plist,右键选择Add Ro原创 2021-06-23 09:40:01 · 9655 阅读 · 0 评论 -
【Swift】变量/常量/类型总结
1、变量(Variable)变量,可以理解为存放某一类型的值的容器,如:var count:Intvar shouldRemind:BOOLvar text:Stringvar list:[ChecklistItem]一个变量的数据类型,决定了它能存放什么类型的数据。有些变量只存放简单的值,如Int、Bool。另一些变量存放相对复杂一些的类型例如String、Array。常见的基本...原创 2020-04-30 14:57:22 · 343 阅读 · 0 评论 -
Quartz2D在项目中的实际使用
还记得大学刚学iOS那会,从学校图书馆借了本iOS开发的书,有一章节介绍了Quartz2D,当时看得一头雾水,感觉这画画线,画画圆有什么用呢????️?工作一段时间后,遇到了一些需求,终于可以把咸丰年学的Quartz2D知识拿出来用一用了????。下面总结下这些年做项目用到Quartz2D的7个例子。一.单纯画个圈。有个项目要模仿呆萌价APP顶部轮播图,然后轮播图后面需要有个圆弧:一看到这需求,不简单...原创 2020-03-10 16:59:52 · 267 阅读 · 0 评论 -
Swift学习总结【持续更新】
1. try、try?、try!的区别:try:需要用catch捕捉异常,如: do { let data = try encoder.encode(item) try data.write(to: dataFilePath(), options: .atomic) } catch { print("Error e...原创 2020-02-15 13:02:12 · 442 阅读 · 0 评论 -
通用的排序按钮
排序按钮,使用Core Graphic绘制,可以指定颜色、大小、字体等:使用场景如下:1.使用方法下载demo代码。将HYRankView.h和HYRankView.m代码拖入工程。然后使用如下代码,即可快速添加一个名称为价格的排序按钮HYRankView *view = [HYRankView viewWithTitle:@"价格" frame:CGRectMake(0,100,8...原创 2020-02-06 17:20:18 · 1704 阅读 · 0 评论 -
pod setup慢的解决方法
最近使用pod setup更新CocoaPods本地检索库,无奈只有10几k,还中途报错。最终通过以下步骤,完成更新。1.手动下载Specs检索库执行pod setup后,实质是从github上clone检索库(https://github.com/CocoaPods/Specs),所以我们可以改为手动从github上下载后,前往文件夹:~/.cocoapods/repos将文件复制进去...原创 2020-01-23 15:07:39 · 534 阅读 · 0 评论 -
iOS通过Plist保存离线调试日志
最近需要测试APP在iPhone没连接USB情况下定位时间间隔的情况,固把nslog的日志信息保存成本地Plist文件,以便测试结束后查阅运行时的日志。一、新建一个保存日志的方法,参数为每次定位成功的时间(作为key),定位成功的地点(作为value):-(void)mylog:(NSString*)logKey andValue:(NSString*)logValue{原创 2015-04-01 13:51:08 · 2279 阅读 · 0 评论 -
自动布局按钮排列平均分布
需要实现如下图所示的主页面布局,需要两排按钮,每一排都自动平均分布,Android的话直接用LinearLayout水平布局,并设置layout_weight即可,对于iOS,网上有使用代码实现,感觉略麻烦,我直接使用AutoLayout实现,相对简单。一。拖7个UIButton到界面上,按所需的布局排列,为方便描述,下文将第一排的按钮起名为1.1、1.2、1.3、1.4,第二原创 2015-04-04 14:50:15 · 12105 阅读 · 0 评论 -
iOS网络请求总结
*说明:文章中HTTP为宏定义的http地址,事例通过app_login.action的接口,通过传递policyNum、plateNum、phoneNum三个参数进行登录操作一、方法1: Foundation框架 NSURLConnection(1)同步请求:同步方法加载url请求,会阻塞当前线程,一般不使用。代码如下#pragma mark - 同步网络请求-(voi原创 2015-04-20 17:09:59 · 638 阅读 · 0 评论 -
iOS 高德导航按返回后报错 解决
最近项目要添加导航功能,用了高德导航SDK,很郁闷每次从地图界面返回前一页面都报错,弄了很久,最终从高德开发者论坛找到一解决方法,可以试一下。在导航的ViewController的viewWillDisappear中调用如下方法,以清理地图:- (void)clearMapView{ mapView.showsUserLocation = NO; [mapVie原创 2015-04-08 16:43:50 · 1426 阅读 · 0 评论 -
iOS后台持续定位并定时上传
最近做一个考勤APP,功能很简单,就是一直在后台运行,每隔固定时间向服务器上传一次位置信息。持续运行24小时测试,功能实现。1.ViewController.h文件:#import 并实现CLLocationManagerDelegate 代理,.h文件完整代码如下:#import #import @interface ViewController : UIVie原创 2015-04-15 21:05:48 · 24910 阅读 · 3 评论 -
iOS8底部弹出日期选择或自定义选择器的方法
本文需要实现的日期选择器和自定义选择器效果如下:在iOS8之前,可以通过UIActionSheet来实现,在iOS8之后,可以通过UIAlertController实现,UIAlertController的官方解释如下:A UIAlertController object displays an alert message to the user. This class原创 2015-04-30 16:31:42 · 8528 阅读 · 2 评论 -
iOS UICollectionView实现瀑布流(3)
前面两篇Blog简单的介绍了UICollection的基本使用并实现了类似Android的Gallery效果,这篇文章使用UICollection来实现瀑布流效果,代码主要是在极客学院Carol老师的视频,并在提供的demo下直接修改代码,进行屏幕适配,最终效果如下图:(1)ViewController.h文件@interface ViewController : UIView原创 2015-05-09 09:53:54 · 4068 阅读 · 5 评论 -
UILayer的一些属性
iOS创建UIView是直接在Core Animation layers上进行绘制,每一个UIView实例都会自动创建CALayer的实例,并且设置为UIView实例的layer属性。以下事例通过设置UIImageView的layer,实现阴影、圆角、边框和旋转缩放等效果-(void)initImgView{ UIImageView *imgView = [[UIImage原创 2015-05-03 15:26:14 · 2133 阅读 · 0 评论 -
UICollectionView的基本使用(1)
如果是简单实用UICollectionView的话,用法和UITableView基本一致。下面是用UICollectionView实现的简单图片显示(1)打开storyboard,将一个UICollectionView拖到View Controller Scene中,默认的UICollectionView已经包含了一个UICollectionViewcell,将一个UIImageVie原创 2015-05-08 18:32:44 · 1458 阅读 · 0 评论 -
iOS 关于Blocks
本文参考了《Objective-C高级编程 iOS与OSX多线程和内存管理》一书,关于Block的基本概念摘取自此书。1.Block语法objective-c语言中blocks的语法格式为:^ 返回值类型 参数列表 表达式c语言中的函数语法格式为:返回值类型 函数方法名参数列表表达式从上面的语法可以看出,完整的Blok语法与一般的C语言函数定义相比,原创 2015-05-11 17:15:54 · 477 阅读 · 0 评论 -
【转】iOS开发学习计划
转自:简书 一、C语言基础基本数据类型、基本运算、函数、数组、字符串、指针、结构体、预处理指令、枚举、文件操作、内存管理二、Objective-C1、Objective-C基本语法数据类型、表达式、变量、循环结构、选择结构2、Objective-C面向对象类、对象、继承、自省、SEL选择器、属性访问、多态、动态类型、动态绑定三、iOS转载 2015-05-27 16:29:55 · 679 阅读 · 0 评论 -
【仿去哪儿登录】UITextField输入时检查输入框是否为空
APP登录时,一般是是等用户输入完账号和密码后才去检查是否为空,而美团登录时,在账号和密码的输入过程中,只要当账号和密码其一为空时,登录按钮立即变成不可用,只有账号和密码均符合要求时,登录按钮才可用。本文就是来实现这一功能:当登录所需的UITextFiled均不空时登录按钮才有效。要实现这一功能,首先想到的是使用UITextFiledDelegate,要实现哪个方法呢?只要一个方法:原创 2015-05-21 19:56:09 · 4090 阅读 · 1 评论 -
【iOS】sqlite3的使用(増删改查)
目录:一、sqlite3常用函数二、将sqlite3集成到项目,实现増删改查三、封装DBManager四、Demo一、sqlite3常用函数及解释(1)sqlite3_open: 用来创建和打开数据库文件,接收两个参数,第一个是数据库的名字,第二个是数据库的句柄。如果数据库文件不存在,将首先新建它,然后再打开它,否则只是打开它。(2)sqlite原创 2015-06-17 15:48:33 · 4092 阅读 · 0 评论 -
【转】判断UIViewController是否正在显示
最近做一个项目,要判断某个ViewController是否正在与用户交互、显示,百度了一下,这篇文章解决了我的问题,故转之:http://edsioon.me/if-uiviewcontroller-is-display/某些情况下,需判断当前ViewController是否正在显示,比如后台网络请求报错,我们可能只希望在发起请求的页面弹窗提示用户,当用户已经跳转到其他界面,不做弹窗,减少转载 2015-05-31 19:13:10 · 2816 阅读 · 0 评论 -
iOS通过CAShapeLayer和UIBezierPath画环形进度条
UIBezierPath可以绘制矢量路径,而CAShapeLayer是Layer的子类,可以在屏幕进行绘制,本文主要思想是:CAShapeLayer按照UIBezierPath的矢量路径进行绘制。效果图如图:方法如下:@interface ViewController (){ CAShapeLayer *shapeLayer; NSTimer *time原创 2015-05-31 19:56:37 · 12724 阅读 · 0 评论 -
【仿去哪儿】滑动隐藏导航栏
仿照去哪儿,隐藏导航栏(其实是设置为透明背景),向下滑动到顶部图片看不见时,显示导航栏,仿照后的效果如下:主要思想:就是监听UITableView的滑动事件,当UITableView滑动一定距离时,设置NavigationBar的背景色,查看UITableView.h没看到有监听滑动事件的Delegate,但是UITableView的父类是UIScroolView,所以通过实现原创 2015-06-06 15:44:23 · 2997 阅读 · 0 评论 -
iOS开发系列--打造自己的“美图秀秀”
概述在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架。今天我们将围绕iOS中两大图形、图像绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能。Quartz 2D基本图形绘制视图刷新其他图形上下文Core ImageQuartz 2D在iOS中常用的绘图框架就是Quartz 2D转载 2015-06-27 16:31:58 · 832 阅读 · 0 评论 -
【仿去哪儿】骆驼动画加载
简单的实现正在加载的动画,比较粗糙,没有实现后面的旋转地球。图一为去哪儿的截图,图二为本文实现的效果图1图2一、新建LoadView继承自UIView,声明几个方法,这样在项目需要用到时,直接调用就行, LoadView .h文件如下:@interface LoadView : UIView- (EmptyView*)initWit原创 2015-06-06 11:38:00 · 1720 阅读 · 0 评论 -
按照文字内容动态设置TableViewCell的高度
最近再做个项目需要使用UITableView来显示评论列表,但是有的评论字数特别多,固定的Cell高度显示不完,只能动态地根据字数来设置Cell的高度了只要实现UITableViewDelegate的-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexP原创 2015-06-06 16:18:46 · 1118 阅读 · 0 评论 -
iOS开发系列--让你的应用“动”起来
概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单转载 2015-06-26 17:52:49 · 745 阅读 · 0 评论 -
iOS自定义转场动画
实现自定义转场动画效果,简单的封装了一个简单的demo。原创 2015-06-08 21:19:35 · 860 阅读 · 0 评论 -
(2)iOS用UICollectionView实现Gallery效果
本文主要实现:(1)用UICollectionView显示一组图片(2)左右滑动来浏览所有图片(3)图片自动对齐到网格(即滑动停止后中间的图片对齐到正中位置)(4)中间图片始终放大显示。效果如下图:(1)先实现UICollectionView显示一组图片,方法看我的上一篇关于UICollection基本使用方法的Blog:UICollectionView...原创 2015-05-09 00:02:07 · 5427 阅读 · 1 评论 -
【iOS官方文档翻译】iOS蓝牙的基本概念
之前写了【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送一文,介绍了怎样进行蓝牙通讯,但是很多基本概念没有进行解释,看起来可能有点吃力,所以现在再翻译一篇苹果对官方蓝牙4.0一些基本概念介绍的文章。1.中心设备和外围设备以及它们在蓝牙通讯中的角色。在所有的BLE( Bluetooth low energy,下文简称蓝牙4.0 )通讯中都涉及2个主要的角色:中心设备和外翻译 2015-06-14 10:51:25 · 1933 阅读 · 0 评论 -
【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送
翻译iOS官方蓝牙开发文档,实现了iOS设备对外围蓝牙设备的搜索、连接、数据的接收及发送。翻译 2015-06-11 14:43:27 · 16330 阅读 · 4 评论 -
【iOS官方文档翻译】UICollectionView与UICollectionViewFlowLayout
(一)先来简单回顾一下UICollectionView*UICollectionView的简单使用可以看我以前写的这篇博文:UICollectionView的基本使用UICollectionView与UITableView很相似,必须实现两个代理:UICollectionViewDataSource和UICollectionViewDelegate,但是UICollectionView原创 2015-08-13 17:29:48 · 3746 阅读 · 0 评论 -
【iOS】UIButton 图标在上文字在下
iOS默认的UIButton是图片在左文字在右,但是很多时候需求是图片在上文字在下(如效果图1、效果图2),因此想到,通过写一个JXButton继承自UIButton,并重写相关方法即可,以后项目中需要用的话就直接使用JXButton就行了。(*以前用的另外一种方法,每次都需要写代码,使用不方便:http://blog.csdn.net/dolacmeng/article/details/45原创 2015-09-11 16:13:52 · 6357 阅读 · 1 评论 -
【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等
以前做项目用高德地图SDK,需要注册账号和AppID,然后下载SDK集成到项目中,比较麻烦,这几天看了下苹果自带的MapKit框架,感觉挺好用,官方文档也介绍得很详细,所以按照官方文档写了个demo,实现地图的显示、显示用户当前位置、放置大头针、弹出气泡等基本功能。希望能帮到刚接触MapKit的朋友~1.显示地图(1)首先我们要像下图这样子打开地图功能:XCode会原创 2015-06-22 18:28:54 · 19124 阅读 · 9 评论 -
iOS Category小举例
Category作用:Category可以向已存在的类添加新的方法,或者覆盖原来类中已经存在的方法,从而扩展已有类(在Java中为了实现类似功能,一般是创建子类)Category例子:使用Category,为NSString类添加一个判断字符串是否只包含数字的方法。(1) 如图1、图2,新建一个扩展NSString类的Category图1图2原创 2016-01-21 21:09:19 · 1016 阅读 · 0 评论 -
iOS中KVO模式的解析与应用
最近老翁在项目中多处用到了KVO,深感这种模式的好处。现总结如下:一、概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。KVO其实也是“观察者”设计模式的一种应用。我的看法是,这种模式有利于两个类间的解耦合,尤其是对于转载 2016-01-21 22:59:23 · 649 阅读 · 0 评论 -
iOS从通讯录中选择联系人
有时候APP需要用户输入一位联系人的姓名和电话,除了用户手动输入,一般也允许用户从通讯录中选择一位联系人,下面的代码就是实现这一需求(图1)。图1完整代码:#import "ViewController.h"#import @interface ViewController ()@property (weak, nonatomic) IBOutlet UITextFie原创 2016-01-24 16:36:16 · 4598 阅读 · 0 评论