记录我的新工作(八)

来源:互联网 发布:升级下windows updata 编辑:程序博客网 时间:2024/03/29 20:01

     早晨就开始拉肚子,真的很郁闷,还好有地铁,又赶上了867,嘿嘿,正点到公司,木有迟到哦!大笑

    今天三个主要的任务:

    1、将静态库.a跟UI层的交互给弄清楚。

    2、将zoom的原理给弄清楚。

    3、对tile的display的原理弄清楚。

    花了一上午的时间,做了个DEMO,终于把静态库部分搞清楚了,嘿嘿,原理很简单,没有所谓的回调函数,只是将.a中的函数的实现放到了上层应用,因为是静态加载,在同一个进程空间,所以调用没有什么问题。而且.a对上层的接口可以放到任意一个头文件中。上层和静态库直接跟WINDOWS下的调用还是有点区别,更像是同一个程序。关于Unix下的编程还需要进一步学习。

    顺便对编译选项中的GCC及llvm之间的区别,看我们的工程都选择的LLVM,原来它会对程序进行优化,提高编译速度。

    在将ZOOM的流程捋顺的过程中,对CALayer和UIScrollView两个控件的原理有了更深刻的理解,通过对CALayer的显示的了解,对地图在UI的实现终于弄清楚了。哈哈,而ZOOM的UI就是UIScrollView的实现,对界面熟悉后,可以对底层有更深入的了解,这方面都是相辅相成的,哪点都不能放过。

    每个程序只有一个窗口Window,都有一个根Layer负责显示层,layer可以有sublayer,每个地图的tile都是一个layer,有自己的Rect显示区域,将同一个zoomlevel的所有tiles都作为这个级别的layer的sublayer,并且按照顺序排列,就可以显示出地图来了。UIScrollView可以对它的content进行拖到和缩放,它将地图layer作为子视图来显示和拖动或者缩放,通过事件进行相应的位置调整或更新地图。ZoomAndSetCenter。

原创粉丝点击