首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Xamarin 学习笔记 - 配置环境(Windows & iOS)

一直以来,做为一名Web以及桌面开发人员,我一直在使用.NET框架和C#语言,而在某些项目中,Angular会在前端占有主导地位。 最近,我们总是谈论移动应用程序开发的未来,但我本身实在没有天赋转向另一种语言。最近几年,针对我的社交项目,我尝试使用Hybrid框架和AngularJS以及Ionic,Cordova一起构建一个示例……但一切并不像我想象得那样容易。此后微软于2016年2月份收购了Xamarin并在之后不久宣布了将Xamarin开源。自此微软生成用C#开发的软件将不仅仅能够运行在Windows上,而是可以在任何设备上运行。继微软收购Xamarin之后,对可以将C#开发与全功能的跨平台移动开发工具相结合,使用开发工具共享业务逻辑代码,以提供完全原生的应用程序的专业人士的需求日益增加,这一点自从2011年之后就一发不可收拾。

02

用AutoLayout实现分页滚动

UIScrollView的pagingEnabled属性用于控制是否按分页进行滚动。在一些应用中会应用到这一个特性,最典型的就是手机桌面的应用图标列表。这些界面中往往每一页功能都比较独立,系统也提供了UIPageViewController来实现这种分页滚动的功能。 实现分页滚动的UI实现一般是最外层一个UIScrollView。然后UIScrollView里面是一个总体的容器视图containerView。容器视图添加N个页视图,对于水平分页滚动来说容器视图的高度和滚动视图一样,而宽度则是滚动视图的宽度乘以页视图的数量,页视图的尺寸则和滚动视图保持一致,对于垂直分页滚动来说容器视图的宽度和滚动视图一样,而高度则是滚动视图的高度乘以页视图的数量,页视图的尺寸则和滚动视图保持一致。每个页视图中在添加各自的条目视图。整体效果图如下:

04

UIScrollView的一步步实现1 简介1.1 工作原理1.2 UIScrollView常见的几个重要控件1.3 UIScrollView常见的重要属性1.4 手工代码实现拖动2 三个重要属性的进

1 简介 UIScrollView 是负责滚动的视图。苹果最强大的地方就在于其良好的UI展示,和UE体验。如果不会很好的使用UIScrollView,就等于丧失了苹果一般的法力。 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限。当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容。 普通的 UIView 不具备滚动功能,不能显示过多的内容。 UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 1.1 工作原理

06

.NET 架构组件

.NET 应用程序是为 .NET 的一个或多个实现开发并在其中运行的。.NET 的实现包括 .NET Framework、.NET 5(和 .NET Core)和 Mono。.NET 的多个实现有一个通用的 API 规范,称为 .NET Standard。本文简要介绍了这些概念中的每一个。 .NET 标准 .NET Standard 是一组由 .NET 实现的基类库实现的 API。更正式地说,它是 .NET API 的规范,它构成了您编译代码所依据的统一契约集。这些契约在多个 .NET 实现中实现。 .NET Standard 是一个目标框架。如果您的代码以 .NET Standard 版本为目标,则它可以在支持该 .NET Standard 版本的任何 .NET 实现上运行。 .NET Standard 的创建是为了在不同的 .NET 实现之间实现可移植性,但现在 .NET 5 提供了一种更好的方式来跨多个平台和工作负载共享代码。有关详细信息,请参阅.NET 5 和 .NET Standard。 .NET 实现 .NET 的每个实现都包括以下组件: 一个或多个运行时。示例:.NET Framework CLR、.NET 5 CLR。 一个类库。示例:.NET Framework 基类库、.NET 5 基类库。 可选地,一个或多个应用程序框架。示例:ASP.NET、Windows Forms和Windows Presentation Foundation (WPF)包含在 .NET Framework 和 .NET 5 中。 可选的,开发工具。一些开发工具在多个实现之间共享。 Microsoft 支持四种 .NET 实现: .NET 5(和 .NET Core)及更高版本 .NET 框架 单核细胞增多症 UWP .NET 5 现在是主要实现,也是持续开发的重点。.NET 5 基于单一代码库构建,该代码库支持多个平台和许多工作负载,例如 Windows 桌面应用程序和跨平台控制台应用程序、云服务和网站。 .NET 5 .NET 5 是 .NET 的跨平台实现,旨在大规模处理服务器和云工作负载。它还支持其他工作负载,包括桌面应用程序。它在 Windows、macOS 和 Linux 上运行。它实现了 .NET Standard,因此面向 .NET Standard 的代码可以在 .NET 5 上运行。ASP.NET Core、Windows Forms和Windows Presentation Foundation (WPF)都可以在 .NET 5 上运行。 有关更多信息,请参阅以下资源: .NET介绍 在 .NET 5 和 .NET Framework 之间为服务器应用选择 .NET 5 和 .NET 标准 .NET 框架 .NET Framework 是自 2002 年以来一直存在的原始 .NET 实现。4.5 版及更高版本实现了 .NET Standard,因此面向 .NET Standard 的代码可以在这些版本的 .NET Framework 上运行。它包含其他特定于 Windows 的 API,例如用于使用 Windows 窗体和 WPF 进行 Windows 桌面开发的 API。.NET Framework 已针对构建 Windows 桌面应用程序进行了优化。 有关详细信息,请参阅.NET Framework 指南。 单核细胞增多症 Mono 是一种 .NET 实现,主要用于需要小型运行时。它是为 Android、macOS、iOS、tvOS 和 watchOS 上的 Xamarin 应用程序提供支持的运行时,并且主要专注于小空间。Mono 还支持使用 Unity 引擎构建的游戏。 它支持所有当前发布的 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 的更大 API,并在 Unix 上模拟了一些最流行的功能。它有时用于在 Unix 上运行依赖于这些功能的 .NET 应用程序。 Mono 通常与即时编译器一起使用,但它也具有在 iOS 等平台上使用的完整静态编译器(提前编译)。 有关更多信息,请参阅Mono 文档。 通用 Windows 平台 (UWP) UWP 是 .NET 的一种实现,用于为物联网 (IoT) 构建现代的、支持触控的 Windows 应用程序和软件。它旨在统一您可能想要定位的不同类型的设备,包括 PC、平板电脑、手机,甚至 Xbox。UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。应用程序可以用 C++、C#、Visual Basic 和 JavaScript 编写。 有关详细信息,请参阅通用 Win

01

Android开发笔记(一百六十四)仿京东首页的下拉刷新

上一篇文章介绍了高仿京东的沉浸式状态栏,可是跟京东首页的头部轮播图相比,依然有三处缺憾: 1、京东的头部Banner上方,除了有悬浮着的状态栏,状态栏下面还有一行悬浮工具栏,内嵌扫一扫图标、搜索框,以及消息图标; 2、把整个页面往上拉,状态栏的背景色从透明变为深灰,同时工具栏的背景也从透明变为白色; 3、页面下拉到顶后,继续下拉会拉出带有“下拉刷新”字样的布局,此时松手则会触发页面的刷新动作; 上面第一点的状态栏和工具栏悬浮效果,都有对应的解决办法;第二点的状态栏和工具栏背景变更,也存在可行的解决方案。倒是第三点的下拉刷新,以及第二点的上拉监听,却不容易实现。 虽然Android提供了专门的下拉刷新布局SwipeRefreshLayout,但它并没有页面随手势下滚的效果。一些第三方的开源库如PullToRefresh、SmartRefreshLayout固然能让整体页面下滑,可是顶部的下拉布局很难个性化定制,至于状态栏、工具栏的背景色修改更是三不管。因此若想呈现完全仿照京东的下拉刷新特效,只能由开发者编写一个自定义的布局控件了。 自定义的下拉刷新布局,首先要能够区分是页面的正常下滚,还是拉伸头部要求刷新。二者之间的区别很简单,直觉上看就是判断当前页面是否拉到顶了。倘若还没拉到顶,继续下拉动作属于正常的页面滚动;倘若已经拉到顶了,继续下拉动作才会拉出头部提示刷新。所以此处得捕捉页面滚动到顶部的事件,相对应的则是页面滚动到底部的事件。鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。正好ScrollView提供了滚动行为的变化方法onScrollChanged,通过重写该方法即可判断是否到达顶部或底部,重写后的代码片段如下所示:

04

.NET 类库

类库是.NET的共享库概念。它们使您能够将有用的功能组件化为可由多个应用程序使用的模块。它们还可以用作加载应用程序启动时不需要或不知道的功能的一种方式。类库使用.NET 程序集文件格式进行描述。 您可以使用三种类型的类库: 特定于平台的类库可以访问给定平台(例如,.NET Framework、Xamarin iOS)中的所有 API,但只能由面向该平台的应用和库使用。 可移植类库可以访问 API 的子集,并且可供面向多个平台的应用程序和库使用。 .NET Standard类库将特定于平台的和可移植的库概念合并到一个模型中,该模型提供了两者的优点。 特定于平台的类库 特定于平台的库绑定到单个 .NET 实现(例如,Windows 上的 .NET Framework),因此可能对已知的执行环境有很大的依赖性。这样的环境将公开一组已知的 API(.NET 和 OS API),并将维护和公开预期状态(例如,Windows 注册表)。 创建平台特定库的开发人员可以充分利用底层平台。这些库只会在给定的平台上运行,从而不需要平台检查或其他形式的条件代码(多个平台的模单源代码)。 特定于平台的库一直是 .NET Framework 的主要类库类型。即使出现了其他 .NET 实现,特定于平台的库仍然是主要的库类型。 可移植类库 多个 .NET 实现支持可移植库。它们仍然可以依赖于已知的执行环境,但是,该环境是由一组具体的 .NET 实现的交集生成的合成环境。公开的 API 和平台假设是特定于平台的库可用的一个子集。 您在创建可移植库时选择平台配置。平台配置是您需要支持的平台集(例如,.NET Framework 4.5+、Windows Phone 8.0+)。您选择支持的平台越多,您可以做出的 API 和平台假设就越少,这是最低公分母。这个特性起初可能会令人困惑,因为人们通常认为“越多越好”,但发现支持的平台越多,可用的 API 就越少。 许多库开发人员已经从从一个源(使用条件编译指令)生成多个特定于平台的库转向可移植库。有几种方法可以访问便携式库中特定于平台的功能,其中诱饵和切换是目前最广泛接受的技术。 .NET 标准类库 .NET Standard 库替代了特定于平台的可移植库概念。它们是特定于平台的,因为它们公开了底层平台的所有功能(没有合成平台或平台交叉点)。它们是可移植的,因为它们可以在所有支持平台上工作。 .NET Standard 公开了一组库契约。.NET 实现必须完全支持或根本不支持每个契约。因此,每个实现都支持一组 .NET Standard 协定。推论是每个 .NET Standard 类库都在支持其契约依赖项的平台上受支持。 .NET Standard 并未公开 .NET Framework 的全部功能(也不是目标),但是,它们确实公开了比可移植类库更多的 API。随着时间的推移,将添加更多 API。 以下平台支持 .NET Standard 库: .NET 核心 .NET 框架 单核细胞增多症 Xamarin.iOS、Xamarin.Mac、Xamarin.Android 通用 Windows 平台 (UWP) 视窗 视窗电话 Windows Phone Silverlight 有关详细信息,请参阅.NET 标准。 Mono 类库 Mono 支持类库,包括前面描述的三种类型的库。Mono 经常被(正确地)视为 .NET Framework 的跨平台实现。在某种程度上,这是因为特定于平台的 .NET Framework 库可以在 Mono 运行时上运行,而无需修改或重新编译。这一特性在创建可移植类库之前就已经存在,因此是在 .NET Framework 和 Mono 之间实现二进制可移植性的一个明显选择(尽管它只在一个方向上起作用)。

02
领券