Tag: xamarin

Xamarin iOS验证文本字段教程

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

使用Xamarin工作簿的自定义Xamarin.iOS UILabel属性

需要一种在UILabel中自定义某些文本的方法,并决定在玩Xamarin Workbooks的同时进行快速发布。 为了自定义UILabel中的某些文本,您首先需要找到其范围。 为此,使用要显示在UILabel中的文本创建一个新的NSMutableAttributedString: var mutableStr = new NSMutableAttributedString(“我的测试字符串。”); 接下来,找到您要自定义的文本范围。 在此示例中,我们将找到“测试”的范围,并应用两个属性,颜色+字体大小/粗体。 可以使用我们的可变字符串通过以下方式定位范围: var range = mutableStr.MutableString.LocalizedStandardRangeOfString(new NSString(“ test”)); 现在我们找到了范围,剩下的就是应用属性。 第一个属性是蓝色前景色: mutableStr.AddAttribute(UIStringAttributeKey.ForegroundColor,UIColor.Blue,range); 接下来,让字体变为粗体并将其增加到30号: mutableStr.AddAttribute(UIStringAttributeKey.Font,UIFont.BoldSystemFontOfSize(30),range); 属性更改后,剩下的就是设置标签的属性文本,并且由于我使用的是Xamarin Workbooks,因此呈现UILabel。 var label = new UILabel(new CGRect(100,100,300,100)); label.AttributedText = mutableStr; RootViewController.View.AddSubview(label); 这是我的工作簿UILabelAttributedText.workbook的链接:https://app.box.com/s/bmg93cujthsbka5v99lzfitrn0ijfts5 Xamarin Workbooks很有趣,确实为我节省了时间。 我不必创建控制台应用程序来测试概念和较小的更改,例如上面的示例。 所有这些都是在Windows和Mac联网的Windows上完成的。 编码愉快!

如何在Windows上使用Xamarin绑定Fat iOS框架

使用Xamarin开发Android项目时,我没有遇到任何麻烦。 但是,使用Xamarin构建iOS应用程序时,这是完全不同的体验—更复杂。 在本文中,我将分享我使用Xamarin绑定DynamsoftBarcodeReader.framework的经验。 将iOS框架与Xamarin绑定 下载 DynamsoftBarcodeReader.framework是用于条形码检测的SDK。 用Linkwith.cs文件链接依赖项 在Visual Studio 2015中创建一个iOS绑定库项目: 将DynamsoftBarcodeReader.framework \ DynamsoftBarcodeReader重命名为DynamsoftBarcodeReader.framework \ DynamsoftBarcodeReader.a ,然后将静态库拖到项目中。 IDE将自动生成相应的DynamsoftBarcodeReader.linkwith.cs文件: DynamsoftBarcodeReader.framework依赖于libc ++。1.dylib 。 参考ObjCRuntime.LinkWithAttribute类, DynamsoftBarcodeReader.linkwith.cs编写如下: using System; using ObjCRuntime; [assembly: LinkWith (“DynamsoftBarcodeReader.a”, LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true , LinkerFlags = “-lc++.1”)] 使用Objective Sharpie生成ApiDefinition.cs ApiDefinition.cs是定义API合同的地方,该文件描述了如何将基本的Objective-C API投影到C#中。 您可以为库手动定义所有API,也可以使用仅在macOS上运行的Objective Sharpie自动生成定义。 这是为DynamsoftBarcodeReader.framework生成ApiDeifinition.cs的命令: sharpie -tlm- do -not-submit bind -framework ~/Desktop/DynamsoftBarcodeReader.framework -sdk iphoneos10.2 […]

Xamarin Live Player…第3卷

在进行了很多有趣的娱乐(不是!)并发现Live Player当前不支持情节提要之后,我不得不调整计划。 我想看看这件事正在运行。 在我的机器上! 最后我成功了。 以下步骤应该可以帮助您启动Xamarin Live Player并在Mac上运行。 所以我们开始吧🙂 首先,请确保您的Mac上已准备好以下软件(最新版本): – macOS 10.12.x – Xcode 8.3.x – Visual Studio for Mac 7.1预览版(切换到Alpha通道) 并确保您的手机 –配备了有效的iOS版本– 10.2.x或更高版本即可完成工作 –已从App Store安装Xamarin Live Player 现在打开Visual Studio for Mac并创建一个新的解决方案。 选择一个iOS Single View应用,为其命名并选择一个保存位置。 现在,您必须对代码进行一些调整才能使解决方案在Live Player上运行。 我们已经了解到,目前不支持情节提要。 因此,我们必须摆脱它们。 和不! 我们不会讨论以下事实:故事板非常好,对开发iOS应用程序很有帮助。 为了使该程序正常运行,我们现在将其取消链接。 具体来说就是Main.storyboard🙂 因此,让我们在代码中进行以下更改: 1.删​​除Main.storyboard(是可选的,但是在此解决方案中,您将无法使用它,因此请删除它) 2.打开Info.plist,然后从“主界面”设置中删除值“主” 3.删除ViewController.designer.cs文件(该文件直接列在ViewController.cs文件下) 4.打开ViewController.cs文件,从类定义中删除“ partial”关键字,并向该类添加公共默认构造函数 5.打开AppDelegate.cs,因为我们必须手动加载ViewController作为我们的根视图控制器(在删除和分离情节提要之后) 6.将以下行添加到FinishedLaunching方法中: Window =新的UIWindow(UIScreen.MainScreen.Bounds); var […]

适用于iOS + Mac OSX + Xamarin的PDF框架和工具

使用iOS和Mac OSX提供的本机API处理PDF文件。 请遵循列出的所有用于轻松开发的pdf框架和工具。 您可以使用以下库轻松播放PDF。 该列表已打开以供更新, 如果您知道不在列表中的PDF相关项目,请随时发表评论。 Obj C中的免费框架/工具/示例列表: Objective-C || 自由 PDF套件 PDF Kit是一项允许您在应用程序中显示和操作PDF文档的技术。 通过为您实施Adobe PDF规范的各个方面,PDF Kit可以最大程度地减少您的开发时间。 甚至Apple自己的应用程序(例如Safari和Preview)也使用PDF Kit来显示PDF内容。 苹果石英2D Apple提供的用于创建和查看PDF文件的API PDF文件 Objective-C PDF对象。 尽我所能帮助我们摆脱头痛,这是Core Foundation。 PdfReportKit 从HTML代码和Mustache模板生成PDF报告 PDF小猫 在iOS中从PDF提取数据的框架 ILPDFKit 一个用于在iOS中填写PDF表单的简单工具包。 VFR阅读器 适用于iOS的PDF Reader Core http://www.vfr.org/ iOS-htmlToPdf 此类允许基于URL的简单PDF创建。 如果用户在iOS设备上打印内容(与OS X打印输出非常相似),则页面的创建方式与创建页面时完全相同。 libHaru 这是一个免费的跨平台开放源代码库,用于生成PDF文件。 目前,libHaru不支持阅读和编辑现有的PDF文件,并且这种支持不太可能出现 缩放PDFViewer PDF查看器样本 PDFReporter 报告框架

Xamarin Live Player…第2卷

由于缺少SDK和错误的版本组合而陷入困境之后,我面对了不可避免的事实,并…更新了我的所有系统。 首先要做的是将macOS升级到10.12。 那就是我每年在WWDC之前每周要做的事😀 然后,我获取了最新的Xcode版本8.3.2。 三回!!!十一十一。 为什么? 首先,Mac在下载过程中进入睡眠状态。 唤醒他后,下载重新开始。 该死的。 然后,我犯了一个大错误,即同时启动了几个其他应用程序更新。 结果-我什至无法解释为什么会发生-重新开始Xcode下载。 因此,我不再在Mac App Store中更改关注重点,而是让Xcode安静地下载和安装。 最后,Xcode 8.3.2安装在我的系统上,内部装有iOS 10.3。 是的 我非常热心地实现了我的主要目标:Xamarin Live Player入门。 因此,我打开了Mac专用的Visual Studio,但仍在Alpha通道上以获得Live Player支持。 然后选择我手机上的Live Player,让我的应用运行。 建立连接非常快,“ Connected”一词的绿色字体非常令人放心。 但是失望很快就过去了。 同样,发生了Vizualization错误。 所以什么都没有改变。 Nooooez。 嗯……我确保已更新所有最新的软件版本和设备。 现在缺少了什么? 所以我想:问问那个在// build大会上展示了这款出色软件的人-James Montemagno。 而且他提供了很多有用的信息,回复速度非常快。 为此非常感谢! 但是,消息令人非常悲哀:该实时播放器目前尚不支持情节提要,而是专注于具有编码iOS UI的Xamarin Forms应用。 这就是我遇到问题的原因。 我试图在Live Player上运行Xamarin.iOS应用而不是Forms应用。 从我的角度来看,这个决定朝着错误的方向发展,因为故事板是iOS上的东西。 是的,很多人不会同意也不喜欢他们,仍然会非常虔诚地用代码编写用户界面。 但是您不应该-或更好地,您不应该。 但这是另一个讨论的话题😀 因此,让我们等待Xamarin Live Player的进一步开发。 到那时,我将使用Forms应用程序尝试整个过程。 敬请关注!

从Debug到Release,您需要在iPhone上运行Xamarin应用程序所需的所有知识都可以构建。

如果您在与我将要描述的情况类似的情况下使用Xamarin Forms,您可能会发现这篇文章很有帮助。 您编写代码没有问题,但是似乎每次都要处理iOS上的证书和预配配置文件时,您总是会感到困难。 任何人都很难记住他们几个月前的所作所为。 这是可以理解的,因为编写代码每天都在发生,而处理证书和配置文件只是偶尔发生。 不幸的是,目前所有可用的文档都很难理解。 一些文档或文章的链接内部包含链接(例如,指向指针的指针)。 有些不是专门为Xamarin写的。 有些是为Xamarin编写的,但没有利用Mac上的最新Visual Studio。 因此,我的目标是写一篇全面的文章,以帮助您从零开始到发行再到发行后及以后。 它从计划开始。 但是在开始之前,我想指出,我将添加另一种构建模式。 这是完全可选的,您不必一定要使用。 通常,您将具有Debug和Release版本。 正如您所期望的。 但是这种称为Stage的附加构建模式可以帮助我创建一个版本,就像Release版本一样,但是它不会发布到App Store,而是以临时方式(例如,通过)分发给我的团队成员(经理,销售人员等) HockeyApp。 下表比较了Debug,Stage和Release: 因此,让我们开始吧。 步骤如下: 注册设备(在developer.apple.com上) 只需点击以下链接。 与Google协商以找到获取设备UDID的方法。 使用您的Apple ID登录– Apple Developer 使用您用来注册或立即注册的Apple ID。 developer.apple.com 请注意,几乎不可能预先知道所有设备。 在项目进行过程中,您将需要出于某种原因添加新设备。 要记住的是,当在此处添加新设备时,您将必须重新创建配置文件(但无需重新创建证书,稍后将对此进行描述) 注册应用程序(在developer.apple.com上) 再次,相当简单。 只需点击链接 使用您的Apple ID登录– Apple Developer 使用您用来注册或立即注册的Apple ID。 developer.apple.com 我最初遇到的问题是使用“ Explicit App ID”选项还是“ Wildcard App ID”选项。 要回答,我发现选择“ Explicit App […]

Xamarin Live Player…第1卷

两个星期前,在// build大会上发布了一个新的热门话题:Xamarin Live Player。 现在,您可以直接在手机上编译和运行iOS应用。 到目前为止,我的理解。 我完全不知如何工作,我想把手放在这项新技术上。 但是我没有走那么远。 为什么? 由于我最喜欢的主题:更新。 我的系统尚未安装所有软件的所有最新版本。 是的,我仍然在macOS 10.11上运行,但是这里是最新的Subversion,其中包含所有提供的安全更新。 但是可以,因此我无法将Xcode更新到最新版本,因为它需要macOS 10.12。 因此,我无法在iOS 10.3上构建和运行我的iOS应用程序。 Xcode 8.3支持此功能,而MacOS 10.12(未安装在我的Mac上)可用。 神。 因此,由于我想至少将已经安装的Visual Studio for Mac预览版升级到最新版本,因此并未安装所有组件。 我错过了整个iOS设备。 不好。 然后,我删除了整个安装并下载了新的常规可用软件包。 这完成了工作。 大! 所以下一站:Xamarin Live Player。 但是现在还不行。 您必须切换到Alpha通道。 好,可以。 一切顺利。 所以下一站:Xamarin Live Player。 哇 但不是。 那里有这个QR码的东西窗口,并且连接不起作用。 没有地方记录下来,但是有种种胆量,那就是我可能需要在同一个WiFi中使用Mac和iPhone。 看看那边,我手机的Live Player应用突然显示出绿色文字。 连接成功。 所以下一站:Xamarin Live Player! 激动! 我现在可以运行我的应用程序,对吗? 不,我不能。 因为现在Visual Studio […]

Xamarin UIPickerView iOS

这是我的第一篇文章,并且源于不得不处理使用本机iOS的UI元素来跨平台Xamarin.iOS的烦恼。 通常会发现,当尝试实施iOS中的解决方案(Swift和Objective-C)时,在线提供的示例通常无法为您提供逐步的解决方案。 因此,在本文中,我将尽力而为,并帮助您使用UIPickerView。 根据我最喜欢的网站; 使用Chris的代码,UIPickerView是一个UI元素,可用于从多个选择中进行选择(类似于下拉菜单对网页所做的操作)。 以此类推。 我正在使用Xamarin Studio 6.0.1构建。 新解决方案> iOS:Single View App>单击下一步> AppName>单击下一步,并将所有其他内容保留为默认值。 打开您的Main.storyboard。 从对象工具箱中添加标签和PickerView。 在属性窗格下提供UI元素名称。 转到负责故事板中视图的UIViewController。 导入这些库 使用系统; 使用System.Collections.Generic; 使用UIKit; 2.实例化Picker的数据模型类。 PickerDataModel pickerDataModel; 3.在您的ViewDidLoad方法中,插入以下代码。 公共重写void ViewDidLoad() { base.ViewDidLoad(); //加载视图后,通常从笔尖执行任何其他设置。 //创建我们的简单选择器模型 pickerDataModel =新的PickerDataModel(); pickerDataModel.Items.Add(“蓝色”); pickerDataModel.Items.Add(“红色”); pickerDataModel.Items.Add(“紫色”); pickerDataModel.Items.Add(“白色”); //将其设置在我们的选择器类上 colorPicker.Model = pickerDataModel; //连接值更改方法 pickerDataModel.ValueChanged + =(s,e)=> { colorValueLabel.Text = pickerDataModel.SelectedItem; }; //在标签上设置我们的初始选择 colorValueLabel.Text = pickerDataModel.SelectedItem; […]

使用Xamarin.Forms在iOS上过渡动画

Xamarin.Forms允许开发人员立即编写漂亮的移动和桌面应用程序。 可以一次创建组件,一次布局组件,仅一次动画组件! 它的性能和稳定性得到了改善,因此几乎是完美的! 只有很少的棘手的事情真的很难使用此框架来实现。 最需要的一种是页面之间的过渡动​​画。 甚至可以用Xamarin.Forms编写这样的东西吗? 当然! 如果您真的不耐烦,只需从此仓库中获取源代码即可: OlexaLe / BeatleApp 通过在GitHub上创建一个帐户为BeatleApp开发做出贡献。 github.com 在iOS上,默认演示文稿动画看起来像是从当前页面到新页面的从右到左的简单幻灯片 。 不幸的是,我们不能做很多事情。 您可以尝试模仿具有Views的Pages并为它们之间的动画设置过渡,但是您实际上并不需要这样 (相信我,我在那里)。 尽管您可以使用Page的OnAppearing / OnDisappearing 生命周期方法来模拟过渡动画,然后再进行一次-为Pages中的View设置动画。 Xamarin论坛上介绍了此解决方案的实现,但是还有另一种方法- 本机动画 ! 让我们来编写一个应用 让我们从Wikipedia中获取图像和文本,并为披头士乐队的粉丝创建一个简单的应用程序。 它将只有2页。 第一个将包含一个带有音乐家照片和姓名的网格。 第二页将显示所选披头士的简短简介。 您可以从https://github.com/OlexaLe/BeatleApp/tree/master/BeatlesApp-start获取入门项目。 在设备上运行它时,您将看到以下内容: 简单动画 那么如何降低它的标准性呢? 模态和常规导航的行为不同,因此其自定义也不同。 现在让我们专注于常规导航 。 在本机iOS中,您可以通过2个步骤实现自定义过渡动画: 实现采用UIViewControllerAnimatedTransitioning协议的动画对象 采用UINavigationControllerDelegate协议返回动画对象 我们的第一个自定义过渡动画将非常简单。 让我们从导航中删除此从右到左的过渡,并以透明效果在当前上方显示新页面。 为了做到这一点,让我们遵循最初的计划并实现animator对象: Niiii​​ce,但您可以发挥自己的想象力,创建更精彩的动画师类。 例如,让我们添加一个缩放效果! 高级动画 首先,我们需要知道用户点击了哪个图像,因此让我们为图像分配唯一的标识符。 我们可以通过多种方式做到这一点。 正确的方法可能是使用TransitionId字段( 继承或救援的附加属性 )扩展UI组件,但只是为了向您说明模式,我将使用Effect分配UIKit的UIKit的Tag字段。 该应用程序的核心部分几乎没有更改,主要的复杂性仍在动画对象中,但是您可以编写一次,将其包装在库中,然后在其他项目中重用。 结论 在Xamarin.iOS项目中创建复杂的动画很容易,但是正如您在Xamarin中所看到的那样, 窗体的开销确实很大。 […]