iOS的用户接口描述文件,其扩展名为.xib,目前在Visual Studio尚未支持直接编辑. 因此在文章中,我们会先用Xamarin Studio建立项目,并使用XCode中的Interface Builder布置我们所需的控件后,再以Visual Studio 开启项目进行程序代码的撰写. 让我们开始吧。

- Main.cs :应用程序的进入点
- AppDelegate.cs :主要的应用程序类别(class),并接听来自操作系统的事件及相对应的事件处理
- Lab01_HelloWorldViewController.cs :负责主屏幕的生命周期,也就是MVC分层的Controller
- Lab01_HelloWorldViewController.designer.cs :包含用户接口中对象的定义及动作(Action)的宣告
- Lab01_HelloWorldViewController.xib :主要的用户接口定义文件,也就是MVC分层的View. XML格式,可透过Xcode的Interface Builder(IB)进行编辑
- Info.plist :应用程序的信息文件,如名称,版本,图示等等

-
在工具栏=>建置=>组态管理员工,将平台设为iPhoneSimulator
-
将仿真器版本改为iPhone 6.1
-
开启项目属性,选择iOS Application节点并输入Application Name,Identifier,Version等信息。最下面的”Deployment Target” 表示目标装置的最低操作系统版本. 此处选择6.0,表示此应用程序可执行在iOS 6.0以后的版本
-
执行项目:iPhone 仿真器将会启动并显示先前步骤所设计的页面。

- Outlet:以属性的方式链接View及Controller. 可以对Outlet附加event handler 或呼叫方法
- Action:类似WPF的command property. 可以将多个control bind到同一个action。
















-
Slider
-
这里我们透过程序动态产生Slider控件。首先我们在 Lab01-HelloWorldViewController 类别中新增Slider控件的宣告
UISlider _slider;
-
在ViewDidLoad 事件处理中初始化控件,并在ValueChanged 事件中将目前slider的值传到Label控件显示
slider = new UISlider(new RectangleF(10, 350, View.Frame.Width -20, 50));
_slider.MinValue = 0.0f;
_slider.MaxValue = 100.0f;
_slider.SetValue(20.0f, false);
_slider.ValueChanged += (sender, e) =>
{
this.lblOutput.Text = string.Format("滑杆目前的值为 {0}", ((int)_slider.Value).ToString());
};
View.AddSubview(_slider);
- 执行项目,试着滑动slider
-
这里我们透过程序动态产生Slider控件。首先我们在 Lab01-HelloWorldViewController 类别中新增Slider控件的宣告
-
Switch
- 同样透过程序动态产生,我们在Lab01_HelloWorldViewController类别中宣告
UISwitch _switch;
- 在ViewDidLoad 事件处理中初始化控件,并在ValueChanged 事件中将目前slider的值传到Label控件显示
//初始化子控件
Switch _switch = new UISwitch(new RectangleF(10,350,100,30));
_switch.SetState(true, false);
//_switch.Hidden = true;
_switch.ValueChanged += (sender, e) =>
{
this.lblOutput.Text = string.Format("目前Switch的值为 {0}", _switch.On ? "ON":"OFF");
};
View.AddSubview(_switch);
- 执行项目,试着切换Switch控件
- 同样透过程序动态产生,我们在Lab01_HelloWorldViewController类别中宣告
-
UIImageView
- 开启Lab01_HelloWorldViewController.xib. 并放置1个UIImageView对象,如下图所示:
针对UIImageView对象新增1个Outlet并命名为_img - 这里我们借用btnClickMe的事件处理,指定UIImageView的图片来源.(请在项目中加入图档,这里我们使用flower.jpg)
this.btnClickMe.TouchUpInside += (sender, e) =>
{
//this.lblOutput.Text = string.Format ("我被点了{0}下", ++i);
_img.Hidden = false;
_img.Image = UIImage.FromFile("flower.jpg");
}; - 上述的程序代码中,图片的数据源是预先放置在项目目录中的图文件。
- 执行项目后点击ClickMe后的结果如下:
- 开启Lab01_HelloWorldViewController.xib. 并放置1个UIImageView对象,如下图所示: