环境:MAC+Xamarin Studio

  先讲讲安装吧,最普遍的方法就是去Xamarin官网,注册个账号,填写信息啥的开始下载,安装。但,在天朝的网络环境下,在下载android模块的东东时,总会下载失败,但你又没办法跳过。我曾经挂了一个晚上去下载,抱着晚上网络质量应该好点的自我安慰侥幸心理,结果第二天早上来的时候发现,还是下载失败。为了避免各位新人再入坑,和大家说下另外一个下载方法,用Google搜索 xamarin studio download xml,进入网站 https://static.xamarin.com/installer_assets/v3/Mac/Universal/InstallationManifest.xml 中,找链接,分批下载,安装。下面截个图说明下:

OK,Xamrin Studio下载安装应该没啥问题了,再去App Store下载最新的Xcode,环境就算大功告成了。

  好,接下来,开始我们的第一个工程。这里我们选择Single View App

  

填好App Name,就建好一个IOS项目了

  

  新建工程的目录如下:

  

  OK,这样的项目是可以直接运行了,但是APP上什么内容也没有,一片白。接下来,我们弄点东东到APP上去。IOS开发,有两种方式可以进行控件布局。一种是在storyboard上,拖拉控件定位。一种是手撕代码,写控件。

  首先我们来讲第一种方式,利用storyboard进行布局。新建的项目,默认是storyboard方式的布局。我们所看到的一片白,就是Main.storyboard显示出来的。为什么会显示Main.storyboard上的布局呢,这和Info.plist中的设置有关,具体位置在下图中的红线标出来的位置。

  好,接下来,我们打开Main.storyboard文件,如下左图所示,其中红色矩形框出来的箭头,可以理解为起点,该箭头指向某个ViewController,APP就会以该ViewController作为LaunchScreen后首先显示的页面,设置的方式有两种,一种简单粗暴,直接拖拽;一种设置属性,选择ViewController,勾选下面右图红框内的属性即可。

    

  接下来,我们实现一个简单的功能,点击Button,改变View的background color。我们拖拽一个Button至View中,双击该Button,回车确定该事件的书写位置,即可创建该事件的方法,是不是和winform很像。

    public partial class ViewController : UIViewController
{
bool isWhite = true; protected ViewController(IntPtr handle) : base(handle)
{ } partial void UIButton10_TouchUpInside(UIButton sender)
{
if (isWhite)
{
this.View.BackgroundColor = UIColor.Red;
isWhite = false;
}
else
{
this.View.BackgroundColor = UIColor.White;
isWhite = true;
}
}
}

当然,也可以手撕一个事件,在storyboard上,Button属性中,给Button的Name赋值button。

public partial class ViewController : UIViewController
{
bool isWhite = true; protected ViewController(IntPtr handle) : base(handle)
{ } public override void ViewDidLoad()
{
base.ViewDidLoad();
button.TouchDown+=(o,s)=>
{
if (isWhite)
{
this.View.BackgroundColor = UIColor.Red;
isWhite = false;
}
else
{
this.View.BackgroundColor = UIColor.White;
isWhite = true;
}
};
}
}

  有心的同学可能会问了,一个storyboard是如何与.CS文件关联的呢?答案也在storyboard中,ViewController属性中的class选项便是与.CS文件关联的关键。

  还有同学会问了,我这个button只是设置了storyboard中的Button的name呀,怎么可以直接在类文件中直接用了,答案在类文件下的.designer.cs中

  

  这样,我们就算完成了第一个APP。

Xamarin.ios——First APP的更多相关文章

  1. Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面

    Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面 关于欢迎界面 很多App第一次启动都会有一个欢迎界面,欢迎界面往往决定这用户对App的第一映像,所以欢 ...

  2. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  3. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  4. 1从零开始学习Xamarin.iOS安装篇

    安装和配置xamarin.ios 最近.net 开源新闻很火呀,于是想学习xamarin,早1年前就了解过这个东西,但是一直没有时间来学习,我这里装的是MAC上面的版本,废话不多说开始第一步安装. 概 ...

  5. Xamarin.iOS提供没有匹配的配置文件

    Xamarin.iOS提供没有匹配的配置文件 错误信息:No installed provisioning profiles match the installed ios code signing  ...

  6. iOS Simulator功能介绍关于Xamarin IOS开发

    iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator.在没有iPh ...

  7. 用c#开发苹果应用程序 xamarin.ios方式

    NetworkComms网络通信框架序言 Networkcomms网络通信框架来自于英国,支持以xamarin.ios的方式开发苹果应用程序 其开源版本2.3.1中带有一个示例程序,实现聊天功能,只要 ...

  8. 【Xamarin挖墙脚系列:Xamarin.IOS的程序的结构】

    原文:[Xamarin挖墙脚系列:Xamarin.IOS的程序的结构] 开始熟悉Xamarin在开发IOS的结构!!!!!!! 先看官方 这个是以一个单页面的程序进行讲述的. 1 程序引用的程序集,核 ...

  9. Xamarin IOS – hello word

    原文:Xamarin IOS – hello word 环境 硬件:Macbook pro Retina 13 系统:10.11.3 EI Capitan Xcode:7.0 Ps:配置刚刚够用. 安 ...

随机推荐

  1. CSS hack前传——背景图片全屏

    在之前的博客CSS hack中我有提到,一个问题的解决让我对CSS hack的态度从不屑一顾,到认真研究了实验一下,事情是这样的,最近产品发布,向来狂妄的我被一个bug纠缠住了,甚至丧气的表示我做不出 ...

  2. 使用Async和Await进行异步编程(C#版 适用于VS2015)

    你可以使用异步编程来避免你的应用程序的性能瓶颈并且加强总体的响应.然而,用传统的技术来写异步应用是复杂的,同时编写,调试和维护都很困难. VS2012介绍了简单的方法,那就是异步编程,它在.Net F ...

  3. Atitit 实现java的linq 以及与stream api的比较

    Atitit 实现java的linq 以及与stream api的比较 1.1. Linq 和stream api的关系,以及主要优缺点1 1.2. Linq 与stream api的适用场景1 1. ...

  4. pycharm快捷键 - 官方全

    pycharm快捷键 - 官方全 Ctrl + F12 显示文件内的成员,继承的成员

  5. 将 PAGE_VERIFY 数据库选项设置为 CHECKSUM

    此规则检查 PAGE_VERIFY 数据库选项是否已设置为 CHECKSUM.为 PAGE_VERIFY 数据库选项启用 CHECKSUM 后,SQL Server 数据库引擎会在向磁盘中写入页面时计 ...

  6. Web Workers 的基本信息

    问题:JavaScript 并行性 要将有趣的应用(例如从侧重服务器端的实施)移植到客户端 JavaScript,存在很多制约瓶颈.其中包括浏览器兼容性.静态类型.可访问性和性能.幸运的是,随着浏览器 ...

  7. 深入理解javascript作用域系列第三篇——声明提升(hoisting)

    × 目录 [1]变量 [2]函数 [3]优先 前面的话 一般认为,javascript代码在执行时是由上到下一行一行执行的.但实际上这并不完全正确,主要是因为声明提升的存在.本文是深入理解javasc ...

  8. hdu1962Corporative Network带权回路

    /* 有N个企业,每个企业想要实现通信,要用线路来连接,线路的长度为abs(a-b)%1000; 如果企业a 链接到了企业b 那么b就是the center of the serving! 然后有两种 ...

  9. java中匿名类的注意细节

    abstract class Outer{ int num; public Outer(int x){ num = x; } public abstract void show1(); public ...

  10. 小实例窥探dotnet垃圾回收

    今天项目调试时发现VS中有下面这样的现象. 说明,file.ServerLocation是一个完整的物理路径.第三句代码是错误的,保留只是因为它使用了"s"字符串.   个人认为当 ...