Tag: swift

UIPageControl

Merhaba TurkishKit,可以轻松地将UIKit添加到UIPageControl中。 UIPageControl和其他UIScrollView元素可分为两个类别。 迅捷的UIKit UIScrollView Ekranlarınfizikselboyutlarınasığmayan,sınırlarıortadankaldıranuygulamar yaratmakistiyorsanız,UIScrollView ile… medium.com Vakit kaybetmedenbaşlayalım👍 UIPageControl Nedir? UIKit的UIKitControl,UIScrollView的UIKit控件和UIScrollView的UIKit控件。 UIPageControl NeredeKullanılır? Genellikle UIScrollView可以使用UIPageControl,还可以使用uktay的控件。 ÖrneğinInstagram,照片在页面上,UIPageControl元素在页面上。 在Instagram页面上发布UIPageControl elementidir。 UIPageControlKullanımı UIPageControl,添加了6个图标。 下议院说,在下议院,下议院说在德国,在德国,在德国。 YönlendirmeleriKontrolEdebileceğimizDeğişkenler Sayfadaki ElementleriGüncellemekİçinKullanabileceğimizDeğişkenler YenidenBoyutlandırmayıKontrol EtmekİçinKullanılabilecekFonksiyon UIPageControl的创建和更新,请执行以下操作。 KodlamaZamanı! UIPageControl和UILabel的UILabel元素。 主题1 —界面生成器YardımıİleElementlerimizi故事板DosyamızaEklemek 在Main.storyboard界面中的界面生成器中,可以使用UIPageControl和UILabel元素。 附件2 — Elementlerimizi ViewController用户手册İçerisineTanımlamak 可能会出现其他问题,例如,Elementlerimizüzerindedeğişiklikleryapabilmemiziçin,Elementlerimizi ViewControllerdosyamıziçerisineeklememiz gerek。 Bunuyapmanınen pratik yolu,ekranısağüstkısımdaki2.butonunyardımıile ikiyebölerek,elementimizinüzerinecontroltuşunabasılıtutaraköbürsayfayasürüklemektir。 主题3 — Arkaplan RenginiDeğiştirmekİçinGerekli Fonksiyonu Yazmak Buuygulamamızda,UIPageControl元素,zigıkınarkaplan renginideğiştirmek和bir fonksiyonoluşturmamızgerekli。 […]

与`Komondor` it的钩针

git-hooks 他のバージョンコントロールロスシと同じように,Gitにも特定のアクションが発生した时にスクリプトを叩く方法があります。 。 上记の通り,git操作をトリガーにして任意のスクリプトを実行する机能です。プロジェクト内。 便利な反面,git-hooks自体をgit管理できないので,チームで共有・保守するとなると考える必要があります。 (オレオレスクリプトを用意するなどの策はありますが..) git-hooksの共有・拡张をサポートするのがをgit-hooksマネージャーです。overcommitやhuskyあたりが有名どころです。 大队 完全可配置和可扩展的Git挂钩管理器–旅/过量使用 github.com 打字/沙哑 🐶吊钩变得容易。 通过在GitHub上创建一个帐户来为typicode / husky开发做出贡献。 github.com huskyを例に见てみると, $ npm installなどを起点にhooksを自动设置してくれます。 奥塔/科蒙多 Swift项目的Git Hooks🐩。 通过在GitHub上创建一个帐户为orta / Komondor开发做出贡献。 github.com Komondorは危险の作者としても有名なortaさんが作成したSwift制のgit-hooksマネージャーです(dander / swift内でも利用されている)。 mondKomondor(コモンドール)はハンガリー原产の护畜用犬种らしいです🐩🇭🇺 Swift Package Manager(SPM)を起点を挂钩を设置し,任意のスクリプトをgit操作に纽づけます。 安装 READMEにinstall手顺等载っていますが,改めて解说していきます。ここでは,SPMのプロジェクトを例に手顺を示します。 // swift-tools-version:4.2import PackageDescriptionlet package = Package( 名称:“ XXX”, 产品:[…], 依赖项:[ .package(网址:“ https://github.com/orta/Komondor.git”,来自“ 1.0.1”), .package(网址:“ https://github.com/nicklockwood/SwiftFormat.git”,来自“ 0.37.1”) ], 目标:[…] } […]

RxSwift:简要介绍(第1部分)

在开始之前,我只想让您知道这是我有史以来的第一篇博客文章,因此请对批评保持温和……开个玩笑,只要有观点,我感谢任何积极或消极的反馈。 无论如何,今天,我们将介绍和使用RxSwift。 就像标题中所说的那样,这将是一个简短的介绍,我将向您介绍RxSwift的最基本的功能,并且还将提供一些示例。 将来,我将尝试编写将使用RxSwift的完整应用程序教程。 事不宜迟,让我们开始吧! RxSwift是一个库,用于通过使用可观察的序列和功能样式运算符来组合基于异步和事件的代码,从而允许通过调度程序进行参数化执行。 听起来复杂吗? 不用担心。 尽管它看起来令人生畏,但实际上并非如此,我将以更简洁,结构化的方式进行解释。 上述解释的简化为: RxSwift通过允许您对数据更改做出反应并将其作为流(序列)进行处理,从本质上简化了异步代码的编写。 流和序列将在本文中互换使用。 他们是一样的东西! 如果您仍然不完全了解这意味着什么,则不必担心,这很快就会变得更加清楚。 首先,让我们回顾一下Rx代码的三个构建基块: 可观察的 经营者 调度程序->将在第2部分中介绍 Observable 类提供了Rx代码的基础:异步生成一系列事件的能力,这些事件序列可以“承载”数据T的不变快照。简单来说,它允许类订阅另一个类发出的值随着时间的推移。 那么,这到底是什么意思呢? 可观察对象只是一些T类型数据的流或序列。它允许一个或多个观察者(订户)实时响应某些事件,并在事件发生后执行某些操作,例如更新UI。 Observable 符合的ObservableType协议是一个简单协议。 简单来说,我的意思是一个Observable可以发出,并且观察者只能接收三种事件类型: 下一个事件:这是包含最新(或下一个)数据值的事件。 这就是观察者接收值的方式。 错误事件:一旦遇到错误事件,可观察对象将终止并停止发射。 完成事件:当可观察对象收到完成事件时,表示序列已成功完成。 然后终止并停止发射。 可视化的最佳方法是使用大理石图。 大理石图是一种可视化表示反应性(异步)数据流的方式。 这是大理石图的图例: 水平线:表示发出事件的时间线 。 圆圈:代表下一个事件。 X letter :代表错误事件。 符号:表示已完成的事件。 这有点理论,让我们在代码中看一下: 为了创建我们的自定义Observable,我们使用其create(subscribe:(AnyObserver )-> Disposable)-> Disposable)方法。 ew……好吧,今天足够了……这只是冰山一角。 我将在第2部分中讨论主题和计划程序 。 我真的希望我能向你们中的一些人介绍。 请提供任何正面或负面的反馈意见,以便我知道如何改进以后的帖子。 对于那些对此主题比较了解的人(无双关语),如果您能分享这些知识,以便从我自己的帖子:D中学到新知识,我将不胜感激。 以下是一些有用的链接,可以扩展您对RxSwift的了解: https://github.com/ReactiveX/RxSwift https://medium.com/ios-os-x-development/learn-and-master-%EF%B8%8F-the-basics-of-rxswift-in-10-minutes-818ea6e0a05b https://www.raywenderlich.com/900-getting-started-with-rxswift-and-rxcocoa […]

如何将MagTek iOS SDK添加到您的Xcode项目

大家好,最近我正在从事一个支付项目,在该项目中,我必须将MagTek iOS SDK集成到现有Xcode项目中。 我很难弄清楚一些低级gcc编译器错误,因此我认为我应该写一篇有关它的文章。 TLDR; 将libstdc++.6.0.9.tbd框架添加到您的项目中。 我的项目配置 Xcode 9.3 iOS 11.3 MagTek SDK v50 首先,将iOS SDK拖放到Xcode项目中。 SDK应包含两个二进制文件和一个头文件, ├──库 │├──MTSCRA.h │├──发布iphoneos ││└──libMTSCRA.a │└──放音模拟器 │└──libMTSCRA.a 确保在“ 构建阶段 >>将二进制文件与库链接”部分中包含二进制文件, 接下来继续为您的项目创建一个桥接头,并在其中导入MTSCRA头文件。 我不会在Apple文档中详细介绍添加桥接头的详细信息。 接下来尝试编译该项目,您会收到很多这样的错误, 就是这样! 编译并运行您的项目。 仅供参考,我不是gcc编译器和低级c ++的专家,所以无法详细说明每个错误,但是如果有人可以为他们提供适当的理由,将不胜感激。 希望这可以节省某人的宝贵时间。 注意:Xcode 10. *已弃用libstdc ++。 请改用libc ++。 谢谢! 编码愉快!!! 〜PK

如何在iOS中生成QR码

生成QR码可能是一个小问题,但知道如何在手机上生成QR码而不是仅使用手机的摄像头扫描QR码就很好了,并且生成它们非常容易。 让我们看一个简单的示例,在该示例中,我们基于字符串创建QR代码,此外,我们还将通过向其添加一些颜色来对其进行一些自定义。 首先,让我们创建UIView的子类,以便我们能够轻松地将QR代码放置在应用程序中所需的位置。 因此,这是我们为实现此结果所做的工作。 为了纠正图像模糊的问题,我们应用了一个变换滤镜,并将缩放比例提高了十倍。 您可能想修改一下它而不牺牲任何性能,使用10的比例随机说明该方法的工作原理。 要设置所需的颜色值,我们需要反转颜色,然后对图像进行遮罩,以使背景变得透明。 对于反转,我们使用另一个名为CIColorInvert的CIFilter 。 这只是反转了由CIQRCodeGenerator生成的黑色和白色的颜色。 该过滤器的输入是转换后的图像,我们使用键kCIInputImageKey ,在进行遮罩时也会看到该键被使用。 现在我们有了一个反转的图像,是时候应用遮罩了。 对于屏蔽,我们使用名为CIMaskToAlpha的过滤器。 就像反转过滤器一样,它也使用相同的键kCIInputImageKey将图像作为输入。 现在,我们完成了一个过滤器。 现在是时候将这些碎片放到位了。 首先,我们为图像视图设置色调颜色,这将是实际代码的颜色。 我们继续为实际的图像视图设置背景色; 当我们对图像应用Alpha滤镜时,这将作为代码的背景色。 最后一点,是时候将生成的图像设置为图像视图了。 因为我们正在使用Core Image框架,所以我们还没有UIImage。 对我们来说幸运的是,UIImage作为接受CIImage的初始化程序。 锦上添花的是,当您将UIImage设置为UIImageView时,可以通过添加.withRenderingMode(.alwaysTemplate) 。 最后一步很重要,因为它将使图像采用图像视图的色调。 就在那里 现在,您可以生成自己的QR码并通过在其上划线颜色方案来对其进行个性化设置。

苹果拒绝了我的应用程序,因此我决定将其开源

在 此处 阅读原始文章 。 今年早些时候,我有一个项目,每月创建一个新应用程序,尝试从中获利或将其作为副项目/业务来运行。 我以解决我遇到的问题的想法开始。 我想要一种非常简单的方法来仅使用表情符号创建购物清单。 只是, 只允许使用表情符号 。 检查存储库! 我玩得很开心,从头开始探索iOS的新项目架构,并尝试了一些不错的开源库,例如Realm和Spring。 我什至计算出我花在创建它上的时间,这样我就可以计算出我在工作时间上投入了多少,因此我可以得出一个基准,即通过出售它我可以获得多少回报。 拒绝 一切都很好,我很高兴发布它,生成了所需的屏幕截图,并将二进制文件发送给Apple进行了审查。 令我惊讶的是,该应用因为使用了Emojis而被拒绝了: 首先,令我惊讶的是他们正在执行这样的政策,对我而言这是没有意义的:他们已经在商店中收取了很大一部分销售额(占30%),我希望至少可以免费使用至少他们在整个平台上都流行的表情符号。 开源项目 但是除了观点,我将不得不绘制许多图标来获得重新提交它的机会,而且我认为我的时间最好投入到其他方面(例如学习Node.js和React.js)。 因此,我决定将该项目开源,以获得社区的反馈,并可能从中创建其他东西。 对于初级开发人员来说,尝试了解如何从头开始构建应用程序可能是一个不错的入门者。 不幸的是,由于版权,我不得不删除我使用的图像。 但是除此之外,其余的都是在Apache 2.0许可下分发的。 可以通过签出GitHub上的存储库来尽情享受,并告诉我!

开始进行Swift编程第17部分-测试

在上一篇文章中,我们讨论了inout ,lazy以及getter和setter。 开始进行Swift编程第16部分-inout,Lazy,Getters和Setters 之前,我们介绍了使用泛型和枚举进行闭包。 medium.com 在本文中,我们将重点放在编写测试上。 您可能会认为这是可选的,因为它不会执行您的应用附带的任何逻辑。 如果您这样想,您将无法通过面试。 测试很重要,每当我听到它时就会想到一个术语。 测试驱动开发(TDD) 。 测试驱动的开发是编写应用程序的一种流行方法,其公式很容易记住。 编写一个失败的测试用例。 编写足够的代码,不再需要通过测试。 测试以确保案件通过。 还有其他测试方法。 您可以使用简单的打印语句来显示一段代码的前后结果,这是一种可以测试的好方法。 您还可以运行您的应用程序,以确保一切正常,这是测试您可能仍会做的最基本的最小方法。 我将仅在本文中介绍TDD。 在开始之前,我想提出两个新术语。 测试率和代码覆盖率 。 测试比率-比率是代码行数与编写的测试数的比率。 许多人会说应该用1:3的3个测试来测试1行代码。 代码覆盖率-涉及已测试的代码量的百分比。 许多IDE将提供代码覆盖视图,该视图根据测试状态突出显示代码。 绿色表示需要测试,红色表示没有测试。 尽管我应该默认像其他所有人一样“测试所有内容”,但我不会。 您不需要走极端,包括Swift或其他包含测试的库中包含的测试功能。 我不会为打印语句或其他一些静态方法(如Date.init() 。 实际上,您只需要测试您的代码即可,其他人的代码不包括测试。 我们编写测试的方式看起来像这样: 在第二轮中,我们的性能提高了39%,但没有任何变化。 这是因为优化已经存在,而我们只是重复使用了它们。 这是设置新基准的好地方,因此我们单击“编辑”,然后接受新基准并保存。 在随后的运行中,我发现在不更改代码行的情况下,变差了6%,好了0%,好了2%和好了7%。 这对我们来说是一个很好的基准。 在这里,我们可以进行更改,然后重新测试我们的测量,以查看是否使情况变好或变坏。 虽然没有严格的准则来指导什么是好的优化,但我认为保持10次测量(100次运行)中始终更好的任何更改。 如果在前几次运行中效果明显好些,我将保留更新的代码。 在测试方面,我们在上文中谈到了单元测试。 还有一个常规测试,它可以测试您应用程序的整体功能是否正常运行。 UI测试是涵盖您的UI的另一种测试,但是由于本教程只是基础知识,因此不在本文讨论范围之内。 最后,还有用户接受测试(UAT),它可以确保用户喜欢他们所拥有的东西。 这通常是由质量检查小组和业务部门或最终用户的特定受众群体完成的(了解有关TestFlight的信息)。 它使您可以在应用程序上投放更多方案以进行进一步测试,并在应用程序上线时将有关“我如何_________?”的问题保留下来。 我们了解了测试的基础知识,以及它如何帮助您编写更好的代码,它在开发周期中的重要性以及如何衡量您自己的代码的性能。 进一步的测试涉及使用Xcode Instruments,您可以在其中测量内存,CPU和磁盘(I / O)的使用情况,但是它更为先进。 确保为应用程序编写了良好的测试,以便您始终知道它会按预期运行。 接下来是模型视图控制器体系结构。 模型视图控制器(MVC)被广泛地用于教会新开发人员如何进行编码。 […]

Python3:可变,不可变……一切都是对象! –杜尚塞米恩

Python3:可变,不可变……一切都是对象! Python非常灵活。 python的根源是动态的,解释的(字节码编译的)语言。 在源代码中没有变量,参数,函数或方法的类型声明。 这使得代码简短而灵活。 Python在运行时跟踪所有值的类型,并标记在运行时没有意义的代码。 让我们看一下id和类型。 id是一个具有单个参数并返回对象标识的函数。 该整数通常对应于对象在内存中的位置,尽管它特定于Python实现和所使用的平台。 对象的类型本身就是对象。 此类型对象是唯一定义的,并且对于给定类型的所有实例始终是相同的。 因此,可以使用is运算符比较类型。 为所有类型对象分配了可用于执行类型检查的名称。 在这里,事情可能会变得有些混乱,同时又令人惊奇。 python中的数据类型具有可变或不可变的能力。 可变对象是创建后可以更改的对象。 可变对象由列表,字典,集合和字节数组组成。 因此,不变对象在创建后就无法更改,它们由int,float,complex,string,tuple,frozen set组成。 但是,仅仅因为一个对象是不可变的并不意味着它不能被修改。 这是面向对象语言的魔力。 它是这样工作的:假设您有一个由不可变和可变数据类型组成的元组。 元组不能更改,字符串也不能更改对象可以更改的值,而不能更改值。 参考文献: 2.内置函数– Python 2.7.15文档 此外,还有其他四个不再被视为必不可少的内置函数:,,和。 他们是… docs.python.org Python id() id()函数返回对象的身份(唯一整数)。 www.programiz.com Python type() 如果将单个参数(对象)传递给内置的type(),则它将返回给定对象的类型。 如果有三个论点…… www.programiz.com 2.4可变数据 创建模块化程序的一项强大技术是合并可能随时间变化的状态的数据。 在这… composedprograms.com Python教程:传递参数 Python中参数和参数的传递。 解释按对象共享调用与按对象调用之间的区别 www.python-course.eu

将TVML和UIKit组合为Apple TV

如许多iOS开发人员所知,UIKit提供了强大的API,可创建可自定义的交互式应用程序。 当来自iOS背景时,使用UIKit创建您的AppleTV应用程序似乎不费吹灰之力… 但是,TVML模板是一个非常有用的工具,可以简化UI并显着减少开发时间。 让我们看一些好处: TVML模板为用户提供了熟悉的体验。 您是否注意到许多AppleTV应用程序具有类似的浏览,预览,搜索,播放等方式? 这是因为它们中的许多人都使用TVML模板,这些模板对他们而言具有独特的外观。 这大大减少了设计时间。 即使很少的JavaScript经验,模板也非常易于实现。 自动版式会为您处理。 延迟加载图像会自动发生。 苹果已经解决了屏幕上每个UI元素的行为。 模板结构化且可自定义。 模板是即插即用的,但是您仍然可以自定义UI元素的某些方面样式和属性 您可以在网络服务器上托管TVML / TVJS文件。 这使您可以对应用程序进行更改,而无需用户将更新下载到应用程序。 这意味着您无需等待3天即可让Apple批准您的UI更改! 那么,如何选择使用UIKit或TVML开发tvOS应用程序呢? 好消息-您不必! UIKit和TVML模板可以在同一项目中混合在一起 。 这意味着您可以利用UIKit自定义功能,而无需为TVML自动提供的一切重新设计轮子! 在这篇文章中,我将演示如何完成两个框架的结合。 首先在Xcode中创建一个新的TVML App项目,或者打开现有项目。 确保托管application.js文件进行测试,以便显示TVML模板。 要创建用于测试的本地服务器,请在终端应用程序的项目文件夹中使用以下命令: python -m SimpleHTTPServer 9001 显示TVML模板要求您使用控制JavaScript上下文的对象: TVApplicationController 。 创建新项目时,将在AppDelegate.swift中为您创建该对象。 将UIViewController添加到堆栈堆栈很容易: 这使您可以将自定义UIViewController推入导航堆栈。 如果要返回,只需像往常一样将viewController从导航堆栈中弹出即可。 现在我们可以在项目中同时显示TVML模板和自定义UIViewControllers,现在该学习如何在两个世界之间进行通信了。 我们可以从Swift代码库中调用托管JavaScript代码库中的方法。 为此,我们创建了一个方法,该方法告诉我们appController中的JavaScript上下文我们想调用JavaScript方法。 这是一个例子: 此示例假设我们的JavaScript代码库中有一个名为pushAlert()的方法 。 在Swift中调用pushAlertJS()将在我们的JavaScript代码库中调用pushAlert()方法(也许您可以在application.js中创建pushAlert()作为测试)。 这意味着您可以在用户按下UIViewController上的按钮后显示TVML模板。 很酷 有时,当用户与TVML模板进行交互时,您可能想在Swift中调用方法。 为此,我们需要向JavaScript上下文中注入一些自定义的Swift代码。 这是一个例子: createSwiftPrint()将代码注入JavaScript上下文; 因此,需要在运行JavaScript代码之前调用它。 确保在应用程序安装过程中调用这些注入方法。 […]

16:“教室中的快速操场”

通过RSS订阅 我很高兴与新的多点触控书籍《课堂中的Swift Playgrounds》的作者Joe Moretti,Anders Randler和Daniel Budd分享我的访谈。 我们对可用于教授Swift的所有材料,启动编码程序的过程以及可用于教授Swift的许多出色的第三方附件进行了精彩的讨论。 我想您一定会喜欢的。 注意:请原谅某些情节中的音频,因为很难找到一个真正的全球思想交流的好时机。 iBook Store中教室中的Swift Playgrounds 乔·莫雷蒂 ( Joe Moretti) : 推特:@Joe_Moretti 乔:在App Store上的内容 乔的网站 安德斯·兰德勒 ( Anders Randler) : 推特:@aDesignEdu YouTube上的Anders 安德斯的几何书 丹尼尔·巴德 ( Daniel Budd) : 推特:@danielbbudd Swift游乐场的机率 带有Swift游乐场的几何 精灵入侵者与斯威夫特游乐场 二十一点与斯威夫特游乐场 跳房子:几何与变换 Swift的概率 显示连结 迅速 Swift课程(老师)和(学生)应用开发简介 使用Swift进行应用程序开发-(老师)和(学生) 斯威夫特游乐场 计算思维 苹果杰出教育家 第11集:卡洛斯·加西亚·加西亚 学习编码1和2 学习编码3 鹦鹉无人机 球体 廷克 乐高EV3 […]