看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio不多,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,以下:android
看起来和Xcode差很少是吧,相比体验性仍是没Xcode好,毕竟原生苹果爸爸本身作的。。ios
好了 ,首先先要下载一个Xamarin Studio For Mac
程序员
最好下最新版的,反正早晚也会更新,我用的是5.2的升级到最新的macos
点开后发现打不开,这是由于须要一个pkg,这个pkg叫MonoFramework.macos10.xamarin.x86编程
这个是编译器的主体框架,还有扩展框架:api
请忽略版本信息。。当时关于Mac的资源不多,就下的老版的,而后后期升级到最新版本,简直浪费时间=。=xcode
大概说明一下这几个pkg的对于编程的意义吧:app
1.Xamarin Studio 的主体框架编译文件框架
2.安卓的编译、框架工具包(能够这么叫吧。。)安装这个包后就能够创建安卓app项目了。ide
3.iOS的编译、框架工具包。。功能同上,能编译iOS的app项目,UIKit什么的都有,只是格式变成C#语言了。
4.OSX的编译框架工具包。。能编写Mac的项目。
5.同上,只是版本不一样,功能暂时没发现区别。。
6.Xamarin 编译器
不须要所有安装,能够选择部分安装,不过第一个确定要安装的。
我是所有双击安装上,而后打开编译器
建立新项目:
建立iOS的项目(安卓同理)
和Xcode差很少的一些项目配置
而后会发现。。玛德和OC方法名差很少嘛hhhh
Xamarin Studio C#语言下的格式:
Xcode下OC的:
先开一个空项目,让模拟器跑起来试试
若是出现:
错误信息:The version of Xamarin.iOS requires th iOS 10.1 SDK (shipped with Xcode 8.1) when the manged linker i s disabled. Either upgrade Xcode, or enable the managed linker.
这是因为Xamarin.iOS项目都是经过苹果系统的Xcode工具进行编译。而每一个版本的Xcode所自带的SDK版本不一样。例如,只有Xcode 7.3及其以上版本才包含 iOS 9.3 SDK。因此,用户必须将Xcode升级到最新版本,才能解决该问题。
在此给出Xcode各个版本下的iOS SDK版本:
也就是说,Xamarin.iOS.pkg的版本要对应上Xcode的iOS SDK版本才可以启动模拟器
我Xamarin.iOS.pkg版本自动升级成最新的了,因此须要Xcode 8.1才能支持启动模拟器
推荐升级,编程界用旧版本会出现多少坑我相信程序员都知道,特例除外=。=
升级后就没事咯,吧Xcode关掉后用Xamarin Studio跑一下试试 里头SB、Plist什么的都同样,iOS程序员上手会很快的
在下就简单的写几个经常使用控件的示例
// UILabel的使用
UILabel myLabel = new UILabel()
{
Frame = new CoreGraphics.CGRect(100, 100, 100, 100),
Text = "Hello, Axc!",
TextAlignment = UITextAlignment.Center,
BackgroundColor = UIColor.Green,
TextColor = UIColor.White,
Lines = 0,
//Alpha = 0,
};
myLabel.Layer.MasksToBounds = true;
myLabel.Layer.CornerRadius = 10;
View.Add(myLabel);
// UI滑杆的使用
UISlider slider = new UISlider(new CoreGraphics.CGRect(10, 350, View.Frame.Width - 20, 50));
slider.MinValue = 0.0f;
slider.MaxValue = 100.0f;
slider.SetValue(20.0f, false);
slider.ValueChanged += (sender, e) =>
{
Console.WriteLine("滑杆目前的值为 {0}", ((int)slider.Value).ToString());
};
View.Add(slider);
//UIMySwitch的使用
UISwitch MySwitch = new UISwitch(new CoreGraphics.CGRect(10, 110, 100, 30));
MySwitch.SetState(true, false);
//MySwitch.Hidden = true;
MySwitch.ValueChanged += (sender, e) =>
{
Console.WriteLine("目前MySwitch的值为 {0}", MySwitch.On ? "ON" : "OFF");
};
View.AddSubview(MySwitch);
//UIImageView的使用
UIImageView imageView = new UIImageView()
{
Frame = new CoreGraphics.CGRect(0, 0, 100, 100),
ContentMode = UIViewContentMode.ScaleAspectFill,
BackgroundColor = UIColor.Red,
};
imageView.Image = UIImage.FromFile("1479265037.png");
View.Add(imageView);
UIButton MyButton = new UIButton(new CoreGraphics.CGRect(10, 150, 80, 50));
{
Title = "我是一个按钮";
}
MyButton.BackgroundColor = UIColor.LightGray;
//MyButton.TitleColor = UIColor.Black;
//MyButton.SetTitleColor();
MyButton.TouchUpInside += (sender, e) =>
{
Console.WriteLine("我点击了按钮");
};
View.AddSubview(MyButton);
}
跑一下,和原生的差很少么,可是毕竟跨平台,能作到这点已经很强了
但愿Xamarin Studio能发展的更出色,毕竟还有很大一个短板,就是第三方库很是少。
这个是Xamarin 官方的例子,Xamarin Shop.该项目包含iOS, Android, WP 以及一个公共的代码业务逻辑部分实现。好处在于能够将复杂的逻辑抽离出来,只写一份。3个界面仍是采用3种原生的模式开发,以达到节省工做量的目标。
只要运行这个示例,就能够免费获得一件C# T shirt 哦,无论信不信,反正我是填写了便当China的地址, 不知道最终能不能给我漂洋过海寄过来。
熟悉的StroyBoard,可是用过了XCode 的界面,总以为哪里怪怪的,固然你彻底能够用XCode 画完界面而后拖回VS2015.
我的以为这块比较有实际意义,若是哪天Android都用C#来开发了,那Google 不是要恨死 巨软了。事实上Xamarin 开发Android 确实作的还能够。如今又有微软出品的Android模拟器,快,确实快不少,C# 语言又比Java 爽,爽太多。。。这一块,不像iOS制约条件那么多,并且破解版很容易。iOS 的Build Host 破解彷佛比较慢。。所以这块就留待各位本身去体验了。