Tag: Csharp

Xamarin iOS验证文本字段教程

我最近开始涉足移动开发。 特别是使用Xamarin iOS。 这是一次很棒的经历,我正在一个副项目上取得重大进展,我希望它将在未来几个月内达到足够的体面并向公众发布。 如果您像我一样,那么您不是UI / UX或设计方面的专家-也不想花很多时间假装自己-但当您的应用在原型制作过程中看起来像是一团糟时,您一定会感激不尽并获得功能布局。 为此,重要的是要拥有随时可用的工具,以便在保持整洁外观的同时快速进行原型制作。 在这篇文章中,我将提供有关如何实现这样一种工具的教程。 我想这是向您介绍我的平面和最小验证文本字段的地方: 如果这看起来有用,请继续阅读。 我要直接跳进去! 我想指出的是,在本教程中,我假设您对Visual Studio和Xamarin iOS有一定的了解。 但是,如果您是一个全新的人,而我却很快地浏览了所有内容,我很乐意回答问题! 您可以在 此处 参考完整的源代码 。 让我们从创建一个新的单视图应用程序开始。 项目加载后,打开情节提要并添加新的UITextField并执行以下操作: 给它一个标识名(我使用了NameTextField) 将其尺寸调整为275px x 30px 删除边框样式 删除初始文字 添加占位符文本 可选:添加约束 您应该最终得到类似于以下内容: 您显然不需要使用任何自定义字体,但是在本教程中,我使用了EB Garamond和Oswald。 对初始视图控制器满意后,保存情节提要并退出。 现在获取一些实际代码。 我们要做的第一件事是添加用于着色UIView边框的功能。 我们将通过扩展方法来实现。 将一个新的类文件添加到您的项目,名为UIViewExtensions.cs。 初始代码如下: 在进入验证文本字段之前,让我们进一步进行边框着色功能,并创建一个名为BorderedTextField的新类。 创建一个名为BorderedTextField.cs的新类文件,并按如下方式填充它: 我真的希望你们中的一些人觉得这有用。 如果您有任何疑问或反馈,我希望听到,所以请联系。 否则,谢谢您的阅读! 再一次,您可以在 此处 引用完整的源代码 。

Unity —如何搭建桥梁:iOS到Swift的Unity

通过添加ARKit和iOS 11中的Core ML,能够将iOS功能桥接到Unity中,使您作为开发人员能够获得更强大和独特的产品体验。 在ustwo建立实验时,我们必须创建一个自定义屏幕录制功能,该功能涉及尚未桥接到Unity中的iOS功能。 结果是使用iOS的ReplayKit API记录游戏玩法,保存记录并将文件传递回Unity的桥梁。 源代码在这里:ReplayKitUnityBridge 在DemoUnityAndReplayKit文件夹中运行DemoScene 将Xcode的“构建设置”中的Swift版本设置为4.0,以便正确构建* 步骤1:如何从Unity向iOS发送消息 首先打开Xcode> New Project> Cocoa Touch Framework 将该项目命名为“ ReplayKitUnityBridge” 在左上角显示“ ReplayKitUnityBridge”。 右键单击->单击“新建组” 右键单击您的源文件夹,然后单击“新建文件”> Swift文件 将您的新文件命名为“ ReplayKitNative ” 将以下内容添加到您的ReplayKitNative.swift文件中 进口基金会 导入UIKit 导入ReplayKit @objc公共类ReplayKitNative:NSObject { @objc静态让共享= ReplayKitNative() 私人let screenRecorder = RPScreenRecorder.shared() 让kCallbackTarget =“ ReplayKitUnity” @objc func startScreenCapture(){ self.screenRecorder.startRecording {(错误)在 // UnitySendMessage(kCallbackTarget,“ OnStartRecording”,“”) } } 让我们回顾一下上面的代码: 使用@objc标志来标记要公开给Objective-C和Unity的内容 @objc公共类ReplayKitNative:NSObject @objc静态让共享= […]

Swift 3.0为C#开发人员解释

编程语言提供了一种通过符号指令与计算机进行通信的方法。Swift和C#是高级语言,通常归类于多范式和编译型编程语言。 它们不仅属于同一类编程语言,而且具有许多共同的语法功能。由于这种语法相似性,C#开发人员可以轻松地将Swift编程语言用于iOS,macOS,watchOS,tvOS和Linux开发。我们将精确地介绍C#和Swift之间的关键相似之处, 常量和变量 类和对象 继承(类和协议) 关闭 泛型 和其他主要的Swift功能 您可以在IBM Swift Sandbox中试用swift代码段,该工具使任何人都可以从其浏览器编写和运行Swift代码。 const是let,而var仍然是var 常量是一个标识符,其值在程序正常执行期间无法修改。 在C#中,使用关键字const定义常量,并且定义常量的语法为 const {Type} {ConstantName} =值; const int loginAttempts = 3; 在Swift中,使用let定义常量,并且明确定义类型是可选的,因为它根据通过类型推断提供的“值”来选择数据类型。 让{ConstantName}:{Type} =值 让loginAttempts = 3 让loginAttempts:Int = 3 在Swift中,每个语句末尾的分号(;)是可选的。 但是,如果要在一行上编写多个单独的语句,则需要分号。 让loginAttempts = 3; 打印(登录尝试) 注意:在C#中,定义常量符号时,其值必须在编译时即可确定。 而在Swift中,常量的值不需要在编译时就知道,而是必须在定义了显式类型的情况下将其值精确分配一次。 与C#相似, var是在Swift中定义变量的关键字。 // C#-隐式键入局部变量 var name =“ Sagar”; //迅速 var name =“ Sagar” var name:String […]

重新创建本机iOS滚动和动量

我们在Unity中重新创建了iOS原生滚动条,并充满了动力。 我不会显示很多代码,但是我将与您分享Apple本身使用的原理和不可思议的数字。 我可以肯定,我不是唯一一个因在UX时代的2017年并不是每个卷轴都相同而感到高兴的人。 再次考虑,对所有内容进行标准化可能是一个错误的决定,尽管您可能会认为一种涡旋物理比另一种更好,但这实际上是一个见解的问题。 我老板的观点是,我们需要在iOS移动应用程序中实现iOS滚动物理的克隆。 您为什么要在移动应用中使用U nity ? —这就是我每天问自己的问题。 不管为什么,我们都解决了这个问题。 但是我们发现的结果会让您感到惊讶! 是的,我们用C#做到了这一点-但谁在乎,底层算法很重要,而不是语言。 不想听所有的戏吗? 只需滚动到底部。 NGUI和Unity UI 从一开始,我们就知道不可能在Asset Store上找到完成的产品/插件并仅仅实施它,但我也知道我们的老板是一位老派的高级程序员,并且不会拒绝。 因此,我们研究了NGUI和本机Unity UI滚动视图的物理特性。 这太可怕了。 虽然我们无法完全检查Unity UI的内部工作原理,但通过观察我们可以学到很多东西。 简而言之,开发人员似乎很着急,没有花时间对其他平台如何处理UI元素滚动进行适当的研究。 也许他们没有被告知要照顾? 毕竟,Unity UI不能用于完整的移动应用程序(在我们的例子中是社交网络)。 没有平台是相同的,但是到目前为止,我们知道Android和iOS在以下几件事上都达成共识: 在视口之外禁用或重用元素 建立动力并坚持到底 有一些弹簧机制或类似的实现 水平滚动和垂直滚动不应共存 让我们使用字体粗细:1700 对于第一个。 苹果和谷歌有一个很好的理由来解决所有使东西消失或失效的麻烦,即性能问题。 当您使用Unity UI滚动包含10个项目的游戏内菜单时,就纯fps性能而言,它表现良好。 但是,一旦您开始用各自的个人资料图片来表示从Facebook API渲染的所有1244个联系人,那么一切都会变得一团糟。 内存和CPU上升,而fps下降。 我发现iOS使用了一种很酷的技术-它会跟踪元素何时离开视口(为了大家,让我们称之为它)以及何时离开,将元素清空,填充新数据并附加到列表的底部。 因此,列表永远不会有超过12–13个元素一直在被重用。 我们认为此功能是必须的,但稍后会介绍更多。 当然,Unity UI不会这样做,正如我的同事Miloš告诉我的那样,NGUI似乎是一个半开发的系统,从未在任何地方使用过(呵呵,对吗?)。 至于它们的动力和春季选择,我们整天都在对它们进行自定义,但它们从未按预期工作。 将研究转移到网络上 在无奈之下,我在StackOverflow上发布了一个问题(里面有扰流板): 需要帮助剖析并基于PastryKit重新创建完美的滚动缓动 对于Web,我通常只使用本机滚动机制。 它们快速,可靠并且不涉及编码。 但是… stackoverflow.com 对于那些由于剧透而选择不读取S / […]