c# - iOS 应用程序 (Xamarin) 与 iOS XAML 应用程序 (Xamarin.Forms) 与跨平台之间有什么区别

标签 c# ios xamarin xamarin.forms

这些 Visual Studio 2017 新项目选项有什么区别?
文件 > 新建 > 项目 > Visual C# > ...
选项 1. > 跨平台,支持 iOS、Android 等
选项 2. > iOS 扩展
选项 3. > iPhone 和 iPad > iOS 应用程序 (Xamarin)
选项 4.iOS XAML 应用程序 (Xamarin.Forms)

我想在 iPad 上制作一个应用程序,通过套接字显示来自远程 USB 摄像头的实时图像。稍后还将在 iPhone、Android 和 Windows 10 上运行。

最佳答案

OPTION 1. > Cross-Platform which supports iOS, Android, etc.

创建跨平台Xamarin.Forms (XF) 解决方案,其中包含支持 iOS、Android 和 UWP 的项目,以及一个保存所有共享代码的项目,这些代码可能是所有代码,具体取决于您的需求。

使用 XF,您的全部或大部分后端和前端代码都可以放入一个共享库项目中,该项目也是在您创建此模板解决方案时创建的。

在共享库项目中,您将可以访问跨平台抽象控件和 View ,例如标签、按钮、图像、ListView 和大多数其他标准用户控件/ View ,以及 .NET Standard 2.0 中的所有 API 。这些 Xamarin.Forms 控件/ View 将由特定于平台的渲染器在每个平台上渲染,即 XF 按钮将在 iOS 上渲染为 UIButton,在 Android 上渲染为 Android 按钮,等等。

根据您的需求,您可能仍然需要向您的 iOS、Android 或 UWP 项目添加一些特定于平台的代码,以便制作您自己的自定义渲染器以将 XF 控件/ View 渲染到您选择的 native 控件/ View ,或者访问控制属性在共享的抽象 XF 控件中不可用,或者运行其他平台特定的代码,例如将文本转换为语音,这在每个平台上都不同。 Xamarin.Forms 确实提供了编写特定于平台的代码的方法,然后可以从共享代码项目中调用这些代码,并且还提供了一种制作自己的自定义控件/ View 渲染器的方法。

OPTION 2. > iOS Extensions

这是对 iOS 应用程序项目的补充。例如,通过这些项目,您可以创建可在 iOS iMessage 应用程序或 iOS 共享菜单中使用的 iOS 扩展。

OPTION 3. > iPhone & iPad > iOS App (Xamarin)

这是使用 Xamarin.iOS 开发一个仅限 iOS 的应用程序项目。 Xamarin.iOS 是与 native iOS SDK 的 C# 绑定(bind),因此可以在 XCode 中使用 Obj-C 或 Swift 完成的任何操作都可以使用 Xamarin.iOS 在 C# 中完成。

OPTION 4. iOS XAML App (Xamarin.Forms)

这与上面的选项 1 相同,但默认只创建核心共享项目和 iOS 项目。您可以稍后添加 Android 和 UWP 项目,但如果您计划将来支持所有三个平台,您不妨使用选项一作为起点。

关于c# - iOS 应用程序 (Xamarin) 与 iOS XAML 应用程序 (Xamarin.Forms) 与跨平台之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52883249/

相关文章:

C# 格式化货币

c# - 每个结果带有计数器的匿名类型

iOS IAP-需要有关高级版应用程序的建议

c# - System.Byte[*] 是什么类型

c# - 如何更改浏览器的后退按钮功能,类似于 asp.net 中的电子商务网站

ios - swift 如何显示除非在到达底部后进一步向上滚动才能看到的页脚?

iphone - 应用商店上传。 SDK 问题

ios - 只有在将方向更改为横向并返回纵向后才能正确显示纵向布局

azure - Xamarin 的 WindowsAzure.Storage 库是否使用 NSUrlSession 进行文件上传?

c# - 为什么 Xamarin android Designer 在打开 *.axml 文件时不显示在 visual studio 2012 中