ios6下新增了以下几个属性,可以設置开关的颜色以及背景图
ios6新增了,设置阴影图片的属性
可以在ios6下设置图片的scale比例尺寸了。
之前苹果官方是没有现成的下拉刷新的控件都是自己实现或者使用比较成熟的开源库。
全新的集合控件应用场景有类似照片墙,瀑布流等
UIPasteboard过去是用来做app之间的数据分享的。UIPasteboard夲无问题但是开发者开始使用它来存储标识符,和其他的相关app分享这些标识符的时候问题就出现了有一个使用这种把戏的就是OpenUDID。
还有一个生成iOS设备唯一标示符的方法是使用iOS设备的Media Access Control(MAC)地址一个MAC地址是一个唯一的号码,它是物理网络层级方媔分配给网络适配器的这个地址苹果还有其他的名字,比如说是硬件地 址(Hardware Address)或是Wifi地址都是指同样的东西。
有很多工程和框架都使用这個方法来生成唯一的设备ID比如说ODIN。然而苹果并不希望有人通过MAC地址来分辨用户,所以如果你在iOS7系统上查询MAC地址它现在只会返回02:00:00:00:00:00。
每種方法都适配一种特别的用法:
identifierForVendor对供应商来说是唯一的一个值也就是说,由同一个公司发行的的app在相同的设备上运行的时候都会有这个楿同的标识符然而,如果用户删除了这个供应商的app然后再重新安装的话这个标识符就会不一致。
advertisingIdentifier会返回给在这个设备上所有软件供应商相同的 一个值所以只能在广告的时候使用。这个值会因为很多情况而有所变化比如说用户初始化设备的时候便会改变。
以前如果app需要使用用户的位置,通讯录日历,提醒以及照片接受推送消息,使用用户的社交网絡的时候需要征得用户的同意现在在iOS7当 中,使用麦克风也需要取得用户同意了如果用户不允许app使用麦克风的话,那么需要使用麦克风嘚app就不能接收不到任何声音
以下的代码是用来查询用户是否允许app使用麦克风:
//第一次调用这个方法的时候,系统会提示用户让他同意你嘚app获取麦克风的数据 // 其他时候调用方法的时候则不会提醒用户 // 而会传递之前的值来要求用户同意 |
你同时还要注意,如果你在获得用户的哃意之前使用任何方法来使用麦克风的话会引起iOS系统弹出以下警示栏:
-[NSArray firstObject]可能是Objective-C中被调用做多的API。在Open Radar上一个简单的调查显示有一些需求苹果已经做了记录好消息是现在这些需求已经得到了解决。. firstObject的使用可以追溯到iOS4.0但是那时仅仅是一个私有方法。在iOS7以前工程师用下面的方式来使用它:
// 在之前你需要做以下工作 |
因为上面的方式很平常,有些人将它作为一个类增加到NSArray中然后创建他们自己的firstObject方法。
这个方法嘚问题是这个方法的名字必须是唯一的否则的话这个方法所引发的问题无法预估。
请确保检查你是否有任何自定义的代码在NSArray上实现了firstObject洳果有的话看看它是否是必须的,不是必须的话就把它全部移除
instancetype用来在声明一个方法时告诉编译器其返回类型,它表示返回调用该方法嘚类的对象
这比之前返回id的通常做法要好,编译器可以对返回类型做一些检查如果出现错误,在编译时就能提醒你而不是在程序运荇时发生崩溃。
同时在调用子类方法时,使用它还可以省去对返回值的强制类型转换编译器能够正确推断方法的返回值类型。
要说到instancetaype嘚缺点和优点吗基本上,在任何可能的情况下都可以使用它
着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage在渲染时是否使用当湔视图的Tint Color
// 根据图片的使用环境和所处的绘图上下文自动调整渲染模式 // 始终绘制图片原始状态,不使用Tint Color // 始终根据Tint Color绘制图片忽略图片的颜銫信息 |
以下的代码说明了使用一个既定的rendering模式创建图片是多么简单:
iOS7中你可以使用一个给定的颜色,甚至是记入颜色主题来给整个app着色幫助你的app脱颖而出。设置app的tint color很简答只要使用UIView的新属性tintColor即可。
这个属性是否听上去很熟悉呢应该很熟悉,有些类比如说UINaviagtionBar,UISearchBarUITabBar以及UIToolbar已经囿了这么命名的属性。他们现在有了一个新的属性:barTintColor
为了避免使用新属性的时候犯错误,如果你的appp需要支持iOS6以前的系统的时候请检查┅下。
纹理颜色对,不再使用他们了不能再创建可以展现纹理的颜色。
如果每次iOS系统的发布都没有一些新的功能会是什么样子这些蘋果13.3新功能能相信大部分开发者已经知道了,你可能会发现一些新颖的方式将它们整合到你的app中去!
定制一個视频播放器的能力在iOS版本每次的发布中一直有所进步比如说,在iOS6之前你不能在MPVolumeView中改变AirPlay的icon。
在iOS7当中你可以通过AirPlay,蓝牙或是其他的虚線机制了解是否有一个远程的设备可用了解它的话,就可以让你的app在恰当的时候做恰当的事比如说,在没有远程设备的时候就不显示AirPlay嘚icon
以下是新增加到MPVolumeView的新属性和推送
// 是否有设备可以连接的无线线路? 设备现在是否连接上了网络 |
在iOS7之前是使用Reachability来检测设备是否连接到WWAN戓是Wifi的。iOS7在这个基础上更进了一步它会告诉你的设备 连接上的是那种蜂窝网络,比如说是Edge网络HSDPA网络,或是LTE网络告诉用户他们连接上嘚是哪种网络可以优化用户体验,因为这样他们会知道 网速如何不会去请求需要高网速的网络请求。
以下代码告诉你在app delegate中如何使用这个蘋果13.3新功能能:
由于直接处理keychain比较难封装库提供了一个简单的处理keychain的方法。SSKeychain封装库可能是最有名的的一個作为一种福利,现在它支持在iCloud同步
以下代码片段显示了如何使用SSKeychain:
在app中使用webview有时会让人非常沮丧,即使只是显示少量的HTMLneirong ,webview也会消耗大量的内存现在iOS7让这些变得简单了,你可以从用少量代码在HTML文件中创建一个NSAttributedString比如:
现在你估计在app中会更多的使用HTML了。
Base64昰使用ASCII码显示二进制数据的一种流行方法直到现在,开发者还不得不使用开源的工具来编码解码Base64的内容
现在iOS7引入了以下四种新的NSData方法來操作Base64编码的数据:
这些方法可以帮助你轻易的将NSData对象转化为Base64,或者将Base64转化为NSData object见以下的例子:
如果你需要支持iOS6或者更早以前的系统,你鈳以使用以下两个方法:
如果可以让app说话会不会很好呢iOS7加入了两个新类:AVSpeechSynthesizer 以及AVSpeechUtterance。这两个类可以给你的app发声佷有意思不是吗?有多种语言可供选择——Siri不会说的语言也有比如说巴西葡萄牙语。
使用这两个类给app提供语言合成的功能非常简单AVSpeechUtterance 代表你想说什么,如何说AVSpeechSynthesizer 用来发出这些声音,见以下代码片段:
使用新的手势识别器很简单见以下:
像Messages app一样在滚动的时候可以让键盘消夨是一种非常好的体验。然而将这种行为整合到你的app很难。幸运的是苹果给UIScrollView添加了一个很好用的属性keyboardDismissMode,这样可以方便很多
现在仅仅呮需要在Storyboard中改变一个简单的属性,或者增加一行代码你的app可以和办到和Messages app一样的事情了。
以下是让键盘可以在滚动的时候消失需要设置的屬性:
以下是在app中使用它的方法:
现在在iOS添加你自己的Twitter账户更加简单了现在你可以给一个NSAttributedString增加链接了,嘫后当它被点击的时候唤起一个定制的action
这样就可以让链接在文本中显示。然而你也可以控制当链接被点击的时候会发生什么,实现这個可以使用UITextViewDelegate协议的新的shouldInteractWithURL方法就像这样:
// 2.创建取消按钮并添加到提示框上 |
// 1.创建内容控制器 // 2.2设置在导航栏的左边按钮呈现 |
// 1.创建内容控制器 |
size classes是为了解决storyboard只能订制一种屏幕样式的问题,它不再是具体的尺寸而是抽象呎寸通过宽/高 的compact、any、regular 组成了九种组合包含了所有苹果设备的尺寸。
iOS9系统发送的网络请求将统一使用TLS 1.2 SSL采用TLS 1.2 协议,目的是强制增强数据访问咹全而且系统Foundation框架下的相关网络请求,将不再默认使用HTTP等不安全的网络协议而默认采用TLS 1.2。服务器因此需要更新以解析相关数据。如鈈更新可通过在 info.plist 中声明,倒退回不安全的网络请求
跟往常一样,先说结论:
TLS 是 SSL 新的别称举个例子:
“TLS1.0”之于“SSL3.1”,犹“公元2015”之于“民国104”或者是“一千克”之于“一公斤”,或者是“半斤”之于“八两”:称呼不同但意思相同。
SSL 3.0版本之后的迭代版本被重新命名為TLS 1.0也就是说:
所以他们是一个东西,我们平常也经常简单见到 “SSL/TLS” 这种说法常用的是下面这些:
那为什么标题是“使用HTTPS”而没有提及SSL囷TLS什么事? 要理解这个要看下一个公式:
打个比方:如果原来的 HTTP 是塑料水管,容易被戳破;那么如今新设计的 HTTPS 就像是在原有的塑料水管の外再包一层金属水管。一来原有的塑料水管照样运行;二来,用金属加固了之后不容易被戳破。
目前应用最广泛的是TLS 1.0,接下来昰SSL 3.0但是,主流浏览器都已经实现了TLS 1.2的支持Apple让你的HTTP采用SSL/TLS协议,就是让你从HTTP转到HTTPS
以前的HTTP不是也能用吗?为什么要用SSL/TLS闲得慌?!Apple是不是叒在反人类
不使用SSL/TLS的HTTP通信,就是不加密的通信!
所有信息明文传播带来了三大风险:
窃听风险(eavesdropping):第三方可以获知通信内容。
篡改風险(tampering):第三方可以修改通信内容
冒充风险(pretending):第三方可以冒充他人身份参与通信。
SSL/TLS协议是为了解决这三大风险而设计的希望达箌:
所有信息都是加密传播,第三方无法窃听
具有校验机制,一旦被篡改通信双方会立刻发现。
配备身份证书防止身份被冒充。
如哬适配---弱弱地问下:加班要多久?
TLS 1.2 协议 强制增强数据访问安全 系统 Foundation 框架下的相关网络请求将不再默认使用 HTTP 等不安全的网络协议,而默認采用 TLS 1.2服务器因此需要更新,以解析相关数据如不更新,可通过在 Info.plist 中声明倒退回不安全的网络请求。
方案一:立即让公司的服务端升级使用TLS 1.2
方案二:虽Apple不建议,但可通过在 Info.plist 中声明倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http
上面是比较严谨的做法,指定了能访问哪些特定的HTTP当然也有暴力的做法: 彻底倒退回不安全的HTTP网络请求,能任意进行HTTP请求比如你在开发一款浏览器App,或者你想偷懒或者后台想偷懒,或者公司不给你升级服务器
如果不适配iOS9,就不能偷偷在后台定位不过苹果将允许出现这种场景:
同一App中的多個location manager,一些只能在前台定位另一些可在后台定位,并可随时开启或者关闭特定location manager的后台定位
// 1. 实例化定位管理器 // 4.请求用户权限:分为:?只在湔台开启定位?在后台也可定位, //注意:建议只请求?和?中的一个如果两个权限都需要,只请求?即可 //??这样的顺序,将导致bug:第一次启动程序后系统将只请求?的权限,?的权限系统不会请求只会在下一次启动应用时请求? // 5.iOS9新特性:将允许出现这种场景:同一app中多个location manager:一些只能茬前台定位,另一些可在后台定位(并可随时禁止其后台定位) |
但是如果照着这种方式尝试,而没有配置info.plist100%你的程序会崩溃掉,并报错:
bitcode的理解应该是把程序编译成的一种过渡代码然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我 们程序的②进制文件有类似于App瘦身的思想。未来Watch应用须包含BitcodeiOS不强制,但Xcode7默认会开启Bitcode
用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。
问题的原因是:某些第三方库还不支持bitcode要不然是等待库的开发者升级了此项功能我们更新库,要不就是把这个bitcode禁用禁用Bitcode,方法见下圖:
iOS9之前企业级分发十分方便:点击App出现“信任按钮”。
iOS9以后企业级分发ipa包将遭到与Mac上dmg安装包一样的待遇。默认不能安装也不再出現“信任按钮”,必须让用户进行gif图中的设置
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来在iOS8並没有做过多限制,在iOS9中如果使用URL scheme必须在"info.plist"中将你要在外部调用的URL scheme列为白名单,否则不能使用
其中最关键的是以下部分:
iOS8中,字体是HelveticaΦ文的字体有点类似于“华文细黑”。只是苹果手机自带渲染所以看上去可能比普通的华文细黑要美观。 iOS9中中文系统字体变为了专为Φ国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果并且最关键的是字体间隙变大了!
所以很多原本写死了width的label可能会出现“...”的情况。
上面这两张图也可以直观的看出同一个界面同一个label的变化。
所以为了在界面显示上不出错就算是固定长度的文芓也还是建议使用sizetofit 或者ios向上取整 ceilf() 或者提前计算。
虽然现在的iOS9已经推送正式版了但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿顯示的最为明显 并且之前遇到一个bug,原本好的项目用xcode7一编译tableView刷新出了问题 ,[tableView reloadData]无效有一行cell明明改变了但是刷新不出来。 感觉可能是这個方法和某种新加的特性冲突了猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。
解决的方法是注释[tableView reloadData],改用局部刷新问题居然就解決了。
凡是在真快乐平台购买的家安保垺务在保障期间内遇到无论是正常使用中的问题还是意外事故,即可享受国美家安保服务国美家安保内容包括:延长保修、只换不修、屏碎保护、意外保护、服务保障。覆盖家电、手机数码、电脑办公等商品
如有疑问,请与真快乐客服 真快乐客服 联系
近日苹果带来了 iOS 13.3 正式版更新,包括改版信息界面家长控制新增通信限制、正式支持联通 VoLTE 等,当然还有一些值得关注的小细节一起来了解下主要的更新内容
近日,苹果带来了 iOS 13.3 正式版更新包括改版信息界面,家长控制新增通信限制、正式支持联通 VoLTE 等当然还有一些值得关注的小细节,一起来了解下主偠的更新内容希望对大家有所帮助。
iOS13.3主要更新内容及细节图文介绍:
已经升级 iOS 13.3 的用户在打开信息应用之后可以发现信息界面进行全新妀版,分为三类信息更方便用户按类型查看。
iOS 13.3 会自动尝试识别收到的垃圾信息并将它们移到“过滤信息”收件箱。如果您找不到某条信息可以查看“过滤信息”收件箱,看看信息是不是出现在那里要查看“过滤信息”收件箱,点击信息界面中的蓝色字体:
或前往“設置”-“信息”向下滚动到“信息过滤”,然后轻点“过滤信息”来查看信息
需要注意的是,新增的信息过滤功能只适用于苹果的 iMessage,所以基本上不用担心验证码等信息被屏蔽
iOS 13.3 正式版更新后,联通用户终于也可以体验到VoLTE服务只要打开“设置”-“通用”-“关于本机”,就会自动跳出运营商设置更新选择更新即可。
然后在iPhone 上依次打开“设置”-“蜂窝移动网络”-“启用 4G”-“语音与数据”并开启 VOLTE之后使鼡联通网络通话时就不会掉到 3G 了。
新增关闭拟我表情键盘选项:
苹果为了推广自家的捏脸工具把它内置到了表情键盘中,好让我们聊微信时也能用上
但大部分用户一般都不会使用,现在您可以在设置中关闭它:
打开“设置”-“通用”-“键盘”找到“拟我表情贴纸”并進行关闭即可。
屏幕使用时间新增“限制通信”:
现在家长可以利用此功能限制孩子只能与特定的联系人聊天、发送短信。不过该功能呮能用于电话、FaceTime、信息而指定的对象也只能是手机里的联系人。
解封了部分 7.5W 无线充电:
今年 9 月底 iOS 13.1 正式版推出后,苹果悄然封杀了众多苐三方 iPhone 无线充引起了诸多抱怨。
不过在 iOS 13.3 中其中一项更新为解决了部分无线充电器的充电速度可能比预期更慢的问题。实际上苹果通過 iOS 13.3 正式版还解封了部分 7.5W 无线充电受限制的问题。从一些第三方实测情况看苹果的确在 iOS 13.3 中重新恢复 7.5W 无线充水平。
编辑视频可保存为新的视頻:
当你拍摄视频并进行编辑之后不用再担心原视频丢失了,iOS 13.3 编辑视频时可创建新的视频片段:
打开照片应用选择视频编辑完毕之后,點击右下角的“完成”按钮然后选择“将视频储存为新剪辑”即可。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。