自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

硬币2014

iOS开发

  • 博客(52)
  • 收藏
  • 关注

原创 iOS开发之SizeClass使用

一、什么是sizeclass以及它能干什么在xib和storyboard中进行布局使用autolayout能够适配不同尺寸的屏幕,但是对于横屏和ipad这种跟一般iPhone尺寸相差比较大的屏幕,只用autolayout很难一种布局适应所有尺寸。这就需要用到sizeclss对不同屏幕类别下的约束和控件进行调整。sizeclss主要是主要针对横竖屏和ipad的屏幕进行特殊约束处理的一种工具。...

2020-03-23 15:12:01 1879

原创 移动端使用rem布局

1、了解移动端px和pc端px的区别移动端的px其实指的是pt,也就是逻辑分辨率。以iphone6为例,宽度是750px,但是在css中iphone6的宽度是375px,也就是375pt,而设计稿一般是750px的。所以在移动端中css的px是设计稿中px的一半。将设计稿中的px转换为移动端中的px:如果设计稿是750px的,在其中有一个宽高都是100px的div,则在移动端的css中我们...

2020-01-16 13:59:39 605

原创 css布局时子div的margin-top影响父div的margin-top的处理

样式如下<style> .box1 { width: 300px; height: 300px; background-color:sienna; } .box2{ width: 100px; height: 100p...

2020-01-16 10:30:44 329

原创 iOS13下获取的deviceToken格式变化的问题

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken在iOS13上,苹果回传的deviceToken格式发生了变化,如下图:这里需要判断下将token处理成统一格式,代码如下:- (NSString *)...

2019-12-09 14:28:50 2625

原创 在react-native-vector-icons中使用自定义图标

react-native-vector-icons的安装参考链接这里主要介绍如何在react-native-vector-icons中使用iconfont官网上的图标。1、下载图标素材首先在iconfont网站上挑选好图标,或者自己的设计将图标上传上去之后,加入购物车,选好所有的图标后, 在购物车选择下载代码。解压后得到如下文件这里我们只需要iconfont.tff文件和iconf...

2019-11-08 17:00:33 967

原创 安装react-native-vector-icons并使用默认图标

1、 安装使用npm安装react-native-vector-iconsnpm install react-native-vector-icons --save2、cocoapods安装进入iOS目录执行 pod install 安装 RNVectorIconsPS: 如果iOS项目编译爆红提示Multiple commands produce xxx.ttf之类的说明字体文件重...

2019-11-08 15:11:23 1383

原创 ReactNative使用npm安装第三方包

安装npm install xxx --save卸载npm uninstall xxx --save安装完成后,在package.json中会自动添加第三方的版本记录。RN 0.60及更新版本不需要再手动link了,会自动link。老版本参考...

2019-10-28 17:24:23 459

原创 ReactNative绑定函数中的this

在一个button的onpress方法中传进一个函数back,这个函数中如果用到this的话,需要将back中的this进行绑定操作。1、传入时进行绑定onPress={this.back.bind(this)}2、在constructor中绑定constructor(props){ super(props) this.state = { show : true, }...

2019-10-14 11:00:13 312

原创 搭建ReactNative环境

1、安装node watchmanbrew install nodebrew install watchman安装完成后修改下npm镜像,参考链接npm config set registry https://registry.npm.taobao.org --globalnpm config set disturl https://registry.npm.taobao.org/ -...

2019-10-10 15:40:18 267

原创 将ReactNative集成到现有项目中的注意事项

按照官方文档将RN添加到现有项目后,用终端运行react-native run-ios --simulator "iPhone 8"时,提示错误iOS project folder not found. Are you sure this is a React Native project运行失败的原因是在项目根目录中,原生项目的文件夹名称必须改为ios,否则rn脚本找不到对应的iOS项目...

2019-10-09 11:26:41 681

原创 iOS新老推送代理方法的触发时机

先来说下iOS7到iOS10之间的情况,接收通知只有两个方法- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo- (void)application:(UIApplication *)application didReceiveRemoteN...

2019-05-28 13:10:59 1857 5

原创 iOS 自定义弹出控制器弹出动画

自定义弹出控制器动画,分为底部弹出和中间弹出PCustomPresentVC利用系统默认动画PresentAnimationVC利用自定义动画关键类是转场动画管理类UIPresentationController...

2018-12-03 09:41:06 1492

原创 iOS 解决打印中文时显示unicode的问题

打印字典时有如果里面有中文的话,有时候会打印成unicode,这时候给字典添加一个分类,重写description方法如下:- (NSString*)my_description{ NSString *desc = [self my_description]; desc = [NSString stringWithCString:[desc cStringUsingE...

2018-11-15 14:08:28 1564

原创 iPhone各型号物理分辨率和逻辑分辨率

/** 逻辑分辨率pt 物理分辨率px iphone4 320x480 640x960 二倍 iphone5 320x568 640x1136 二倍 iphone6 375x667 750x1334 二倍 iphone6p ...

2018-11-02 17:01:26 4065

原创 iOS 添加透明罩时遮挡后面控件手势的问题

问题:要实现一个简单的夜间模式,简单的方法可以在KeyWindow上加一个半透明的view,但是这个view遮挡住了后面页面的手势了,需要处理一下。这就用到了事件的传递和响应者链。一、事件的传递和响应者链一个完整的点击过程包括两个过程,先找到能响应该点击事件的控件,然后通过响应者链响应事件。寻找响应控件是从父控件到子控件的自上而下的过程。一个点击事件的传递是从父控件往子控件传递的。从...

2018-10-26 12:01:12 2698

原创 iOS 使用objc_setAssociatedObject为分类增加属性-关联对象

使用分类可以为没有源码的类增加方法,但是一般不能增加属性。如果我们为分类添加属性的话,要手动实现所加属性的getter和setter方法,这里使用关联对象的方式完成set和get方法。我们首先了解@property的意思生成实例变量 _property生成 getter 方法property 生成 setter方法 - setProperty:如下,为一个分类增加一个名为name...

2018-10-10 16:15:22 2384

原创 iOS 百度地图更新sdk是剥离bitcode版本和坐标系偏移问题

123

2018-10-09 13:46:11 819

原创 Objective-C高级编程iOS和OS X多线程和内存管理(阅读笔记GCD篇)

1.1什么是GCDGrand Central Dispatch是异步执行任务的技术之一。将应用程序中的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务,这样就比以前的线程更有效。例子:dispatch_async(queue, ^{ /* 长时间处理 ...

2018-09-21 16:59:23 830

原创 Xcode10编译时遇到的一些问题

问题1描述error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target’s code sign settings match the parent app’s.Embedded Binary Signing Certific...

2018-09-19 11:00:11 3139

原创 iOS 关于NSDate的时区转换差值问题和转换字符串时间

1、标准时间也叫格林尼治时间,北京所在的东八区时间比标准时间快八个小时。 例如:标准时间为 2000年1月1日 00:00:00 对应的北京时间为2000年1月1日 08:00:00 2 、iOS系统中直接生成的时间都是格林尼治时间,比当前时间(北京时间)小八个小时。 通过Date.init()生成的时间为当前时区的时间所对应的格林尼治时间 通过UIDateP...

2018-06-13 12:09:23 1866

原创 OC 使用static const extern 和#define声明常量

static–只作用在编译单元,即只在当前.m文件可见 const–不可变 extern–生成全局变量利用#define定义常量#define Time 3 有时候这样做很方便,但是这种定义方法,看不出类型信息并且值会被修改。用static和const来定义常量static NSString *const name = @”jim”; static表示只在当前.m文件可见,...

2018-06-06 13:18:59 1201

原创 Swift SnapKit和xib自定义view的三种方法以及获取真实frame

demo下载地址 从xib中加载view,使用的是loadNibNamed方法,这个方法可以写在view的initWithFrame方法里,也可以写在initWithCoder里,也可以自己重新定义一个view的构造方法。我们这里用第三种方法来加载nib文件。 第一种,常用的xib自定义view首先创建一个纯代码view和一个xib的view,如图,并将xib中的view的clas...

2018-05-31 14:36:32 3305

原创 Swift中属性的几种初始化方式

Swift中的属性可以用可选项(?)和感叹号(!)来标识, 在Swift中的初始化方法中(init中),必须对属性赋初值,但是有以下几种避免的方法。1、将属性标识为可选项(?),这样,属性有一个默认的nil初始值。 2、将属性标识为肯定有值,用感叹号(!)标识,需要注意的是,感叹号表示的是必须有值,一旦你使用一个属性是感叹号标识,但是该属性又为空的话,会发生运行时错误。 3、设置初始值,...

2018-05-31 10:17:47 3070

原创 Swift 重载函数和重写函数以及final的使用

当子类B继承自父类A时,子类不但继承父类的属性,还继承了父类的方法。可以再子类中重载和重写父类的方法。 重载: 1、不需要加override, 2、函数名和父类相同,参数可以不同, 3、可以为子类在创建时添加额外的属性,属性可以通过外部传入 4、OC 不支持函数重载,OC 的替代方式是 withXXX… 重写(覆盖): 1、需要标识overrid...

2018-05-16 16:03:09 1473

原创 Swift 数据转模型之Codable使用

本篇介绍数据转模型Codable的使用,Codable是苹果自带的基于KVC编码的数据转换模型的协议。 先创建对应的modellet dic = ["name":"wall" , "age":"22" , "h":"170"]//转为data数据,这里其实要判断data是否为nillet data = try? JSONSerialization.data(withJSONObj

2018-05-11 15:48:14 3730

原创 Swift 条件判断中使用逗号连接可选项展开代替多个if嵌套判断

在Swift中,因为有可选项的存在,当我们用到一个可选项类型时,可以用if let进行可选项展开,也可以判断是否为nil,然后再强制展开使用,代码如下:var name:String? //方法1 if let n = name { //如果name不为nil,则执行这里,这里直接使用n,是解包后的 print(...

2018-05-11 11:51:35 3948 1

原创 OC中使用Swift混编引入头文件

上篇讲了Swift中使用OC,Swift中使用OC,这篇讲下OC中使用Swift类。 在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。 特别注意 1、被使用的Swift的类必须是至少继承自NSObject的,不然OC识别不了这个类。 2、Swift中的属性和方法,要加上@objc标识,不然识别不了。代码如下,Swift中定义了...

2018-05-09 14:00:01 2998

原创 iOS 发布证书创建和使用Xcode打包上传app

前两天将开发者账号的agent权限转到我自己的apple id账号上了,导致所有的开发证书失效了,并且生产版的描述文件也全部失效,虽然不影响线上app,这次趁着app上架新版本,从新搞下生产证书和描述文件。1、进入开发者账号,选中Prouduction,选择右边的加号 在页面中选择App Store and Ad Hoc 。 PS:生产证书配合Ad Hoc的描述文...

2018-05-07 14:52:20 2695

原创 Swift 整数相除返回保留两位小数的浮点数

两个Int型的数相除,要先转换为Float,然后再进行运算,用String的构造方法保留两位小数,再将String转换为Float let num1 = 12345 let str = String(format: "%.2f", Float(num1)/1000) let num2 = Float(str) print(num2!...

2018-05-04 18:59:10 21874

原创 Swift Data和字符串互转

let str:String = "意大利"//字符串转Datalet data = str.data(using: String.Encoding.utf8)//Data转字符串let newStr = String(data: data!, encoding: String.Encoding.utf8)print("data=" , data! , "\n" , "newStr=...

2018-05-04 10:06:25 24603

原创 Swift 网络请求库Moya的使用

Moya是Swift中的网络库Alamofire的二次封装,Alamofire本身使用起来是很简单方便的,例子如下:func loadData(){ var param = [String:String]() param["pageNo"] = "1" param["Type"] = "8" param["pageSize"]...

2018-05-02 17:36:14 4245

原创 Swift项目中使用OC混编--创建桥接文件和使用Cocoapods设置User Header Search Paths

&amp;amp;amp;gt; 如果项目是Swift项目,想引用OC写的类库时,需要创建桥接文件。 桥接文件创建有两种方法: 1、直接在swift项目中创建oc的类,会弹出提示没直接选择创建桥接文件,Xcode会自动帮你创建好并进行配置。 2、自己手动创建并配置,名字自己起, 然后进行配置,Target-&amp;amp;amp;gt;Build Setting-&amp;amp;amp;gt;Objective-C Bridging ...

2018-04-26 14:07:45 2925

原创 Swift头文件引入和全局变量、宏定义功能文件

Swift中不需要互相引入头文件,但是一些全局的常量和宏我们可以写在一个公共的文件中,用来替代OC中pch文件的作用。1、创建普通的comman.swift文件 2、在comman文件中定义全局参数和常用宏对于一些常用参数,可以直接使用常量设置,例如:///屏幕宽度let KScreenWidth = UIScreen.main.bounds.size.width...

2018-04-26 11:36:21 7034

原创 Swift4.0概览(简单值、控制流、闭包和函数、对象和类、枚举和结构体、协议和扩展、错误处理和泛型) --(Swift中文手册)

简单值 使用let来声明常量,使用var来声明变量。var myVariable = 42myVariable = 50let myConstant = 42 声明的时候如果赋值的话,就不需要进行声明类型,因为Swift会根据赋值的类型自动进行类型推断。 如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割。let i...

2018-04-19 14:40:15 349

原创 iOS 苹果开发者公司账号成员管理

这里针对的是公司类型的账号(非企业账号)。个人账号,公司账号和企业账号的区别 登录具有Agent权限的apple id,点击左侧的People ,在右侧点击Invite People ,可以选择邀请成为普通成员(Members)或者管理员(Admins),输入对方的apple id,点击邀请,对方邮箱会受到一个邀请邮件,按要求接受邀请后,对方的apple id就具有相应的权限。 ...

2018-04-14 10:28:36 7801

原创 iOS 苹果开发者账号--个人账号,公司账号和企业账号的区别

苹果开发者账号主要分为3类:个人(Individual)、组织(Organizations)(公司、企业)、教育机构(Educational Institutions)。组织又分为两大类:公司(Company)和企业(Enterprise)。这其中教育机构类的基本上都用不上,所以我们基本会分为3种:个人账号,公司账号和企业账号。1、个人账号:(1)费用:99美元一年 (2)App S...

2018-04-14 09:55:13 15167 1

原创 iOS 开发者账号添加手机号码 Program License Agreement has been updated.edit phone number

苹果开发者账号经常性的更新一些开发协议让开发者同意,苹果爸爸的要求,同意就好了。只有Agent权限账号会收到,团队成员账号权限区别请参考。 最近苹果开发者账号又更新了协议,apple id没有绑定手机号的,在开发者账号里会要求你必须绑定手机号(以前apple id都是邮箱申请的,可以不绑定手机号),如图 苹果开发计划许可协议已经更新。 为了访问某些成员资源,您必须接受最新的许可协议。首先...

2018-04-13 21:41:09 6258 5

原创 iOS RAC下对应的的Target Action模式、代理模式和观察者模式

1.替代Target Action模式 self.myBtn.rac_command = [[RACCommand alloc]initWithSignalBlock:^(UIButton *btn) { NSLog(@"点击了%@" , btn.titleLabel.text); return [RACSignal empty]; }];[[self.t...

2018-04-13 17:04:35 1101

原创 iOS 用RAC实现简单的登录逻辑和颜色控制器,附代码

下面两个demo的demo地址。iOS RAC下对应的的Target Action模式、代理模式和观察者模式Demo1:当输入的用户名不为空且密码长度大于6时,登录按钮可点,否则不可点分析:将两个输入框转化成信号量,并进行绑定,然后使用map进行映射返回新的信号量,用RAC()绑定在button的enable属性上,- (void)viewDidLoad { [super viewDidL...

2018-04-13 15:50:13 1914

原创 iOS 使用cocoapods导入ReactiveCocoa和ReactiveObjC框架

cocoapods使用ReactiveObjC -- 对应的是RAC的OC版本,最新3.1.0版本。ReactiveCocoa--对应的是RAC的swift版本,最新7.1.0版本。1.纯OC项目只需要引入ReactiveObjC,podfile文件如下platform :ios , "8.0"use_frameworks!target "RACTest" do pod 'ReactiveO...

2018-04-08 14:57:59 1445

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除