如何用 UIKit Dynamics 进行碰撞检测

2017-09-07
阅读 6 分钟
5.4k
用 UIKit Dynamics 可以让指定对象具备碰撞行为。动态的项目能相互碰撞或者和任何指定的边界碰撞。在本节教程中,将学习创建自行一的边界,随机地让一些方块下落到边界上。本节教程使用的是 Xcode 8.3 和 iOS 10.3。

Swift 周报 #76

2017-07-27
阅读 3 分钟
3.8k
除了 Merge 之外,总共有 39 个作者 push 了 156 个 commit 到主分支,所有分支算起来有 284 个 commit。在主分支,401 个文件被修改,增 12589 删 9215 …

如何检测摇一摇手势

2017-07-26
阅读 2 分钟
4.8k
iOS 设备可以检测摇一摇手势,在本节教程中,我们将学习如何检测摇一摇手势,检测到该手势后,更新 label 的文案。本节教程使用的是 Xcode 8.3 和 iOS 10.3。

iOS 教程:属性字符串

2017-07-17
阅读 3 分钟
2.1k
属性字符串(Attributed Strings)可以为文本赋予各种各样的属性,还能一次给(部分)文本赋值多个属性。在本节教程中,将学会给 label 文本里的每个单词各设置不一样的样式。本节教程使用的是 Xcode 8 和 iOS 10。

Swift 周报 #73

2017-06-12
阅读 3 分钟
3.5k
这周的事情很多!今天是 WWDC 2017 的最后一天,Swift 4 随着 Xcode 9,一起放出了开发者公测版。Xcode 和 Swift 都有好几个重大的改进和新的功能 — 这个版本真的很棒。整个社区的反响都很正面。恭喜 Apple 的 Xcode, Swift 和开发工具组!

Swift 中的安全性

2017-06-06
阅读 3 分钟
4.1k
作者:Soroush Khanlou,原文链接,原文日期:2017-04-05译者:Doye;校对:walkingway;定稿:CMB Swift 是一门注重安全性的语言,如Swift官网的关于页面中所言 Swift 是一门通用编程语言,采用现代化的方法来保证安全性与性能,套用软件设计模式。 还有它的说明 安全性:那些显而易见而又便捷的编程方法应该保证是安全...

[Jinkey 原创]震惊!iOS 系统居然自带悬浮窗口调试工具

2017-05-31
阅读 2 分钟
4.1k
原文链接 : 震惊!iOS 系统居然自带悬浮窗口调试工具 —— Jinkey 原创 原文作者 : Jinkey 1 背景 英文原文: [链接] 我写得这个并不是翻译而是用自己的理解重新表述这个功能,和原文内容有出入,有能力的可以查看英文原文。 我们经常使用各种调试工具,或者开源库来支持悬浮窗调试信息,但苹果的私有方法就提供了 UIDebug...

SpriteKit 技巧之添加背景图片

2017-05-19
阅读 2 分钟
4.1k
Sprite Kit 是硬件加速的动画系统,为创建 2D 游戏进行了专门的优化。在本节教程中,将使用 Game 模板来添加一张背景图片。本节教程使用的是 Xcode 8.2.1 和 iOS 10.2。

改变状态栏的颜色

2017-05-18
阅读 2 分钟
3.2k
状态栏可以有两种外观:dark(黑色) 和 light(白色)。在本章教程中,将学习如何改变状态栏的外观。本节教程使用的是 Xcode 8.0 和 iOS 10。

Unowned 还是 Weak?生命周期和性能对比

2017-05-16
阅读 19 分钟
3.9k
每当处理循环引用(retain cycles)时,需要考量对象生命周期来选择unowned或者weak标识符,这已经成为了一个共识。但是有时仍然会心存疑问,在具体的使用中应该选择哪一个,或者退一步讲,保守的只使用 weak 是不是一个好的选择呢?

创建多个 Outlet 教程

2017-05-15
阅读 3 分钟
2.2k
为多个对象创建多个 Outlet 是比较费时费力的一件事情。而且多个对象也可能共享同一个的 Outlet。在本教程中,我们将会根据按钮的 tag 值来创建多个 Outlet。本教程使用 Xcode 7.2 作为开发工具,使用 Swift 2.1 和 iOS 9 进行构建。

Swift 简洁之道(下)

2017-05-12
阅读 4 分钟
2.2k
译者注:上面的这些翻译,个人认为只是作者为了阐述清楚代码的原理(也就是说为什么这样做能使代码简洁),而并非是每行代码都要加注释. 本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 [链接]。

在 iOS 上用 Core Image 实现人脸检测

2017-05-11
阅读 8 分钟
4.3k
Core Image 是 Cocoa Touch 框架提供的功能强大的 API,是 iOS SDK 中常常被忽视的关键部件。本教程将尝试探索 Core Image 提供的人脸识别功能,并将其应用到 iOS App 中。

你需要的大概不是 enumerated

2017-05-05
阅读 3 分钟
3.4k
Swift 标准库里最容易被滥用的就是 Sequence 的 enumerated() 函数。这个函数会返回一个新的序列,包含了初始序列里的所有元素,以及与元素相对应的编号。

Promise 的几种通用模式

2017-05-04
阅读 6 分钟
3.7k
译者注:英文原文发布时间较早,故原文代码中的 Swift 版本较旧,但是作者已将 GitHub 上的 Promise 示例代码更新到了最新 Swift 版本,所以译者在翻译本文时,将文章里的代码按照 GitHub 上的示例代码进行了替换,更新成了最新版本的 Swift 代码。

Feature 框架设计

2017-05-03
阅读 2 分钟
2k
几个月前,我在 iOS Conf SG 上做了名为 创建 Feature,而不是 App 的分享(你可以在这里查看完整分享)。在 WWDC 2016 之后,我清晰地认识到今后的发展不是一个大一统的 App,而应该拥有各种小功能的 Feature。想想 Apple Watch,Widget,可交互的 Notifications,App Search,iMessage 贴纸,地图这些数不胜数的应用。

使用 MapKit 绘制路线

2017-05-02
阅读 4 分钟
4k
在本节教程中,将学习如何在纽约市的两个地标之间绘制一条线路。这条线路绘制在 Map 图层的上面,使用折线绘制。本教程使用 Xcode 7.2 和 iOS 9.2。

使用 Core Graphics 绘制基本形状

2017-04-28
阅读 4 分钟
4k
Core Graphics是Cocoa和Cocoa Touch所共有的API。它允许你在画布上绘制图形对象。在此篇教程中,我们会绘制一些标准的图形,比如三角形或者圆形。教程运行在 iOS 9 和 Xcode 7 下。

如何将一个可选字符串转换为 NSString

2017-04-26
阅读 2 分钟
3.7k
McFly 问到:我在这个地方一直报错:"不能将 ·String? 变量强制转换为 NSString",而且我在 stackoverflow 上也没有找到解决方法。

手把手教你封装网络层

2017-04-25
阅读 12 分钟
5k
同时负责两个项目是个探索应用架构的好机会,可以在项目中试验一下已有的想法或刚学到的知识。我最近学习了如何封装一个网络层框架,说不定对你有所帮助。

Swift 简洁之道(上)

2017-04-24
阅读 5 分钟
2.3k
译者注:上面的这些翻译,个人认为只是作者为了阐述清楚代码的原理,也就是说为什么这样做能使代码简洁,而并非是每行代码都要加注释 本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 [链接]。

(Swift之路) 从这里开始

2017-04-21
阅读 2 分钟
1.9k
作者:Dominik Hauser,原文链接,原文日期:2016-04-19译者:Darren;校对:Crystal Sun;定稿:CMB 昨天有人问我, Swift 初学者应该先学什么。 问题是这样的: 我有个问题想咨询一下你, 是应该花时间学习 TDD (测试驱动开发) , 还是应该学习 Swift 和函数式编程,哪样更值得学习? 当然,我的观点会有一些偏见,因为我...

快速入门指南:使用 UIViewPropertyAnimator 做动画

2017-04-20
阅读 3 分钟
3.6k
作者:Yari D'areglia,原文链接,原文日期:2016-11-20译者:SketchK;校对:Cee;定稿:CMB iOS 10 带来了一堆非常有意思的新特性,例如 UIViewPropertyAnimator。这是一个能够改善动画处理方式的新类。 它彻底改变了我们所习惯的工作流,为动画逻辑添加了一个更为精细的控制手段。 一个简单例子 让我们看看如何创建一...

Swift 代码小抄

2017-04-14
阅读 4 分钟
1.6k
无论是你学习的第一门语言是 Swift 还是之前学过 Objective-C,在学习 Swift 的过程中,一定会感叹它真的是一门超赞的语言。但如果你不熟悉它的某些语法,就可能会被某些写法吓到。在这里我会介绍一些在写 Swift 过程中常见语法,希望你们能用 Swift 写出更简洁的代码。

Swift: NotificationCenter 协议

2017-04-13
阅读 4 分钟
3.3k
OSX 已经有至少 17 年的历史,而 NotificationCenter 在其第一次版本发布就已经存在,并且一直是苹果开发者常用的工具。对于不了解的人来说,NotificationCenter 是基于 观察者模式 的概念,也是软件设计模式中行为型模式的一部分。

Picker View 教程

2017-04-12
阅读 2 分钟
1.6k
picker view 看起来像是自动贩售机或者角子老虎机,用于展示一组或者多组数值。用户通过滚轮来选择数值,选中的值处在同一行中。Xcode 里的 User Interface 提供了 picker view 控件,展示可选的组件和行。组件就是滚轮,有很多行,每行都有固定的 index 值。本教程使用的是 Xcode 8.3 和 iOS 10.3。

自定义 Navigation Bar 的属性

2017-04-10
阅读 2 分钟
2.9k
众所周知,Navigation Bar 的外观可以进行自定义,在本节教程中,将介绍如何改变其背景颜色、tint 颜色,以及给 Navigation Bar 添加图片。本节教程使用 Xcode 8.2.1 和 iOS 10.2。

Table View 上下文菜单教程

2017-04-07
阅读 4 分钟
3.5k
通过长按手势来展示上下文菜单,给了用户对选中对象进行 剪切/复制/粘贴 操作的能力。在默认情况下,Table View 的上下文菜单是禁止的。在本文中,使用上下文菜单复制 Table View Cell 上面的文字,随后可以将文字粘贴到 Text Field 里面。本教程基于 Xcode 8.1 和 iOS 10。

拼写检查教程

2017-04-05
阅读 3 分钟
1.6k
UITextChecker 对象可以用来对一个字符串进行拼写检查,在这篇教程里面我们将在一个 Table View 里面展示一些单词。当单词被选中的时候,会被进行拼写检查,拼写正确的背景将会变成绿色,否则将会变成红色。本教程在 Xcode 7.2 和 iOS 9 环境下进行。

保护 Equatable 的实现

2017-04-03
阅读 8 分钟
3k
作者:Ole Begemann,原文链接,原文日期:2017-03-08译者:Cwift;校对:walkingway;定稿:CMB 假设你有一个结构体: {代码...} 并且让其遵守 Equatable: {代码...} 实际的效果满足预期: {代码...} Equatable 的一致性是脆弱的 不幸的是,同我在 上一篇文章 中讲到的枚举的例子一样,这种方式实现的 Equatable 的一...