日期:2014-05-16  浏览次数:21027 次

关于c#中的预编译指令-#define、#if——&&——mono touch,去掉sdk7下uitable的行线左侧余留空白

最近在做mono方面的开发(mono for ios),上周把sdk升级到7后,之前做的项目一堆的兼容问题凸显了,非常之坑爹。在6和以下的版本中好好的,跑到7上面不是半透明就是有背景还有表格的间隔线无端的左侧余留了空白,后来查了下才知道,这是sdk7下面ios的变动,与之前大大的不一样。其中就有这样的一个问题:

,播放列表用的是个uitable,但是sdk7下,tr之间的隔线,左侧余留了一部分空白出来。而处理的代码 是

TBCourseView.SeparatorInset = new  UIEdgeInsets (0, 0, 0, 0);

注意这里的SeparatorInset属性是针对sdk标记的,以前的版本是没有这个的。


这下怎么搞,我的测试机器有多个,难道还要打几个版本出来,这个时候我们强大的预编译指令会很便捷的帮我们处理的。

先在头部定义DEBUG,然后用#if判断


这样,在非sdk7的系统中,就不会编译#if之间的代码块,效果妥妥的。

参考:http://msdn.microsoft.com/zh-cn/library/4y6tbswk.aspx