iOS开发-Storyboards入门教程
iOS开发-Storyboards入门教程首先我们来大致了解下,Storyboard是什么?
Storyboard是iOS5中引入的,在近几年的 Xcode 更新中可以看出,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,同时也让界面的开发和适配更方便。
Storyboard的本质是XML文件,它描述了窗体、组件以及Auto Layout 约束等信息,因此协作开发也不成问题。
Storyboard的优势就在与它把界面和代码分离,是界面逻辑更直观,代码更清晰、让开发者更专注业务代码,使开发效率更高。
在本教程中,你将学习如何在Storyboard中进行设计场景,连接视图控制器以及场景过渡,而无需编写任何代码。
StoryBoard是iOS 5首次引入的一个令人兴奋的功能,它可以为开发者节约大量的UI构建时间。StoryBoard允许你在一个文件中创建和设计多个视图控制器和视图,也允许你创建视图控制器之间的场景过渡。
在使用StoryBoard之前,你必须有过使用xib文件(也就是NIB文件)的经验,或者其他可视化编程设计工具的经验,否则理解上可能有一定的 ...
四川航空App问题收集
四川航空App问题收集
测试环境:iPhone8 Plus系统环境:iOS 13.7应用版本:5.21.1
首页模块: 1、首页左上角的英文版本入口,点击会进入到英文专用的版本,建议可以使用国家化功能,使用移动端的原生功能对于客户使用更加友好。 2、首页可以增加下拉刷新操作,方便刷新运营位banner和首页运营位(在节假日或者特殊活动的时候能快速展示运营数据)。 3、首页-Banner运营位详情页面,左边侧栏右滑返回手势失效,只能通过左上角导航栏返回按钮返回,这样对单手操作用户较为友好。 4、首页-Banner运营位详情页面的分享功能,建议增加QQ和钉钉的分享选项,QQ目前大多是00后在使用,而钉钉目前大部分公司都有使用,办公白领,商务人士潜在出差机会较多,可以吸纳更多用户参与活动。 5、在机票搜索页面做成左右滑动操作方便切换前后日期的机票浏览,增加用户体验(因为目前的手机大屏居多,如此操作对单手用户特别友好,对双手用户也能增加一定好感度)。 6、首页->系统公告页面问题,左边侧栏右滑返回手势失效,只能通过左上角导航栏返回按钮返回,这样对单手操作用户较为友好;系 ...
使用CoreNFC和Swift构建NFC扫描器
原稿:Building a NFC Scanner App with CoreNFC in Swift原文:使用CoreNFC和Swift构建NFC扫描器
近场通信(NFC)是在一定距离(通常约4厘米)内实现两个设备之间无接触通信的技术。如今,NFC正被用于非接触式支付系统、电子身份证、电子票证,以及共享联系人、照片、视频或网址等信息。这种标签或卡片可以使用NFC用来阅读信息,被称为NFC标签。
根据维基百科描述,有三种通信模式可以在全NFC设备中执行:
NFC卡仿真(NFC card emulation)使支持NFC的设备(如智能手机)像智能卡一样工作,允许用户执行支付或票务等交易。
NFC读写器(NFC reader/writer)使支持NFC的设备能够读取嵌入标签或智能海报中的廉价NFC标签上存储的信息。
NFC点对点(NFC peer-to-peer)使两个支持NFC的设备能够相互通信,以临时方式交换信息。
iOS中NFC的现状NFC是苹果公司在2014年发布苹果支付时接入iOS系统的。iPhone 6s和iPhone 6s Plus是第一款内置NFC硬件的 ...
UIStackView上手教程
原文:UIStackView Tutorial: Introducing Stack Views最初教程由Jawwad Ahmad原创。Kevin Colligan更新支持iOS 11、Xcode 9和Swift 4。
iOS开发当中是不是遇到需要动态添加或者删除视图元素的需求。你是上基hub去嗨一遍第三方库还是自行撸frame,或者用Auto Layout的约束更新。就这点破需求,反正我是坚决不选前两者,即便是万不得已,最多也是更新约束(虽然Auto Layout的所见即所得极大缩短了开发耗时,增加我撸猫的快乐时光,但不得不承认我是很反感用代码去改约束,可视化编码还要去code约束,脑子有病!!!)。处理这类需求,总之一句话。
好在,现在大家伙应该都只支持到iOS9了,用上UIStackView来处理这类需求简直是美滋滋,艾玛真香~~~在本教程中,阔以了解UIStackView如何提供一种简单的方式来处理水平或垂直布局。还阔以了解如何通过使用对齐、分布和间距等属性来获取视图,以便自我调整方便自适应。
本教程假定观者基本熟悉Auto Layout。如果不熟悉,请移步传送门Beg ...
AudioKit 入门教程
原文:AudioKit Tutorial: Getting Started作者:Colin Eberhardt同时感谢:kmyhy
近来手上有一些音频相关的开发工作,搜搜基Hub,目前最为强大,性能屌爆,编码炫酷的开源库也只有AudioKit了。Raywenderlich也能找到相关教程,介于作者是3.0+的教程,很多代码都不能跑了,特此整理一趴。本文不仅是一篇iOS开发教程,更是一篇精彩的科普文。关于编程与艺术的结合,声学物理与音乐的碰撞,尽在此文。推荐所有程序员都好好读一读它,让我们的生活除了代码,还有艺术,还有音乐。感谢作者Colin Eberhardt。
iOS 设备提供了丰富的多媒体体验,比如绚丽的视觉效果、声音和可触摸的交互界面。尽管能够使用各种各样的特性,但作为开发者,我们更多地关注了应用的视觉设计,而忽略了用户体验的声学效果。
AudioKit是一个高级音频框架,由声学设计师、程序员和音乐家为 iOS 专门打造。AudioKit底层混合了Swift、Objective-C、C++和C,负责和苹果音频已硬件的Api打交道。所有神奇(同时十分复杂的)技术都封装成为 ...
RxSwift实战操作·Realm应用
此部分对于对于ReactiveX就不单独介绍了,详情请转至:ReactiveX website或者RxSwift GitHub repo
从RxRealm入手我们可以通过CocoaPods简单的安装使用RxRealm这个extension:pod ‘RxRealm’,或者自行安装,详情参考文档source code from GitHub。这个库是封装好的Realm信号量集合。我们可以通过简单的订阅Results对象来刷新表视图,这仅仅只需要asObservable()操作。
123456let realm = try! Realm()realm.objects(Lap) .asObservable() .subscribeNext {[weak self] laps in self?.tableView.reloadData() }
asObservable()在集合有改变的时候会发出信号,返回为Observable<Self>,收到信号的同时会得到最终改变过的集合,任由你处理。如果你只是想拿到变动的集合,只需要使用asObservab ...
RxSwift从零入手 - 入门·Observables
在本章节中,你将学习RxSwift的基础知识。你将看到RxSwift解决哪些类型的异步编程问题,以及它提供的解决方案。此外,本次还会学习几个基本的类,它们允许你创建和观察事件序列,这是Rx框架的基础。通过学习基础知识和理论,并掌握,当需求变得复杂时才能处理地更得心应手。请不要跳过这些章节!
Observables什么是observable,它是Rx的核心。接下来我们提到的observable,observable sequence和sequence其实都可以理解成序列,你也可以理解成流,不过RxSwift里一般都是说序列,不会说流这个东西,反正你这个概念就阔以了。
Observable只是一个会产生各种事件的序列,当有订阅者订阅各种事件的时候,就会得到相应的事件和值,这些值就和之前提到的一样,可以数值,字符串,甚至是自定义的实例,比如点击事件等。
不过为了更好的理解,我们还是直接上图示比较好(看成时间流即可)。
从左到右的箭头表示时间,编号的圆圈表示序列的元素。元素1将被发射,一段时间之后会发射2和3。你问具体时间?它可能在整个可观察的生命周期中的任何时候。
observable ...
RxSwift从零入手 - 介绍
译自:Introducing RxSwift: Reactive Programming with Swift!
简介
“If you’ve ever used an asynchronous callback based API, you’ve probably dealt with handling the response data ad-hoc all across your codebase, and have most likely decided there was no way to unit test it all… But, let me tell you - there is a better way, and it’s called Rx!”— Krunoslav Zaher, creator of RxSwift
不可否认,Rx是当今移动应用开发中最热门的话题之一,它是一个多平台的标准,基本上前卫一点的开发者都会有所接触,所以无论是网络开发大会,还是Android,或者Swift研讨会,基本上每次沙龙或者线下面基都会必现他的身影。对于RxSwift来说, ...
Swift4 终极解析方案:进阶篇
自定义Key基础篇里面已经介绍了使用CodingKey协议来处理自定义字段的问题,这里我们反向编码来看一下,示例:
12345678let json = """{ "name": "Endeavor", "abv": 8.9, "brewery": "Saint Arnold", "style": "ipa"}""".data(using: .utf8)! // our data in native (JSON) format
123456789struct Beer : Codable { // ... enum CodingKeys : String, CodingKey { case name case abv = "a ...
Swift4 终极解析方案:基础篇
做过网络开发,特别是互联网,甚至移动端开发的,日常对于数据解析,早年主流的XML,现今主流的JSON都是非常熟悉的,说道解析,系统自带和各种第三方的解析库,除了解析当然也当不了懒癌的脚步,各种model反射库。对于Objective-C各种方案都尤为成熟,甚至还有专门的MacApp用于model生成,可以说是懒到极致,好处当然是节省出了撸猫撸手办的时间(技术狗撸手办不知道是什么时候开始的恶习,我还是更喜欢撸妹纸)。这种操作对于Swift就比较蛋疼了,当然第三方库和工具也是完全够用,但是,生成的model里面一大堆代码,一个字,恶心。
那好,今年Swift更新到4.0版本之后带了一个我最喜欢的功能:Codable协议。
Codable是Encodable和Decodable协议总和的别名。所以它既能编码也能解码,自从有了它,我model里面代码奏是干干净净,清清爽爽,对于洁癖控来说,这货是原生的,又可以少个Pod和Package了,巴巴掌。
开始吧如果对此协议不太明白到底能干啥,可以先看下今年的WWDC视频。
Codable让我们可以通过Struct和Class不要一行多余代码来 ...