4.monotouch 代码实现功能总结
1.加载/卸载
//ViewDidAppear和ViewDidDisappear每次进入和离开界面都会调用这进入方法。 public override void ViewDidAppear (bool o) { base.ViewDidAppear (o); } public override void ViewDidDisappear (bool b) { base.ViewDidDisappear (b); } //ViewDidLoad ()和ViewDidUnload () 不管页面近来多少次,只会在页面首次进入时,执行一次Load。 public override void ViewDidLoad () { base.ViewDidLoad (); } public override void ViewDidUnload () { base.ViewDidUnload (); }
如果在ViewDidAppear中像View添加了控件,或者绑定了事件,在ViewDidDisappear中一定要删除控件,并解除事件的绑定,否则会导致不必要的错误。
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) { if (toInterfaceOrientation == UIInterfaceOrientation.LandscapeLeft ||
toInterfaceOrientation == UIInterfaceOrientation.LandscapeRight)
return true; else return false;
}
//控制屏幕的旋转,默认情况下是可以随便旋转的,LandscapeLeft和LandscapeRight 设置为横屏。
2. AppDelegate.cs
public override UIWindow Window { get; set; }
Window是自动生成的,不可删除,删除以后会导致Storyboard的导航不可用。
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) { return true; }
完成启动。
public override void DidEnterBackground (UIApplication application) {} public override void WillEnterForeground (UIApplication application) {}
在真机中点击Home键,程序会执行DidEnterBackground,程序置于后台运行。
点击后台运行中的程序,会执行WillEnterForeground,将程序置于前台。
可在这两个方法中完成你需要的功能。
public override bool HandleOpenURL (UIApplication application, NSUrl url) {return true; }
由其他程序跳转到当前程序时执行
相当于Application类。
3. 所谓的用户控件,monotouch中没有用户控件的概念,但是我们可以创建一个UIViewController,将控件元素放到一个主UIView中,并给需要用到的控件定义属性,在需要用到用户控件的页面添加定义好的UIViewController的UIView。例如:
图片中红色选中区域既是可以滚动翻页的,每一部分就可以抽取出来新建一个页面Cell,在xib中只设计这一部分。
Cell cell = new Cell ();
cell.LoadView (); //必须LoadView()才可使用其控件。
遍历循环添加到滚动视图中即可。
this.UIScrollView.Subviews[index].AddSubview(cell.mianView);
当然使用滚动视图时,需要添加足够的假页,以保证有空间呈现数据记录,ScrollView也需要对属性进行设置,设置如图:
4.所谓的模态窗口样式,原理与上面是相同的。例如下图:
先创建一个与整体窗口大小相同的View,设置半透明,布局窗口控件,在需要的使用的界面上,初始化,并将其父级别View定义属性(例如为mianView),添mianView加到当前View.SubViews中,设置mianView.Hidden=true,需要显示窗口时,设置Hidden=false。
5.窗口提示框
var alert = new UIAlertView (title, message, null, "OK", null); alert.Show (); //如果需要点击OK以后再执行一些代码,可以绑定点击事件。 alert.Clicked+= (sender, e) => {};