-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb.json
1 lines (1 loc) · 117 KB
/
db.json
1
{"Asset":[{"_id":"source/img/jj.png","path":"img/jj.png","modified":false},{"_id":"source/img/longmao.jpg","path":"img/longmao.jpg","modified":false},{"_id":"source/img/viewController.png","path":"img/viewController.png","modified":false},{"_id":"themes/yilia/source/img/coderwall.png","path":"img/coderwall.png","modified":false},{"_id":"themes/yilia/source/img/delicious.png","path":"img/delicious.png","modified":false},{"_id":"themes/yilia/source/img/facebook.png","path":"img/facebook.png","modified":false},{"_id":"themes/yilia/source/img/github.png","path":"img/github.png","modified":false},{"_id":"themes/yilia/source/img/google.png","path":"img/google.png","modified":false},{"_id":"themes/yilia/source/img/img-err.png","path":"img/img-err.png","modified":false},{"_id":"themes/yilia/source/img/img-loading.png","path":"img/img-loading.png","modified":false},{"_id":"themes/yilia/source/img/linkedin.png","path":"img/linkedin.png","modified":false},{"_id":"themes/yilia/source/img/pinboard.png","path":"img/pinboard.png","modified":false},{"_id":"themes/yilia/source/img/pinterest.png","path":"img/pinterest.png","modified":false},{"_id":"themes/yilia/source/img/rss.png","path":"img/rss.png","modified":false},{"_id":"themes/yilia/source/img/stackoverflow.png","path":"img/stackoverflow.png","modified":false},{"_id":"themes/yilia/source/img/twitter.png","path":"img/twitter.png","modified":false},{"_id":"themes/yilia/source/img/weibo.png","path":"img/weibo.png","modified":false},{"_id":"themes/yilia/source/js/instagram.js","path":"js/instagram.js","modified":false},{"_id":"themes/yilia/source/js/jquery.lazyload.js","path":"js/jquery.lazyload.js","modified":false},{"_id":"themes/yilia/source/js/main.js","path":"js/main.js","modified":false},{"_id":"themes/yilia/source/js/script.js","path":"js/script.js","modified":false},{"_id":"themes/yilia/source/css/style.styl","path":"css/style.styl","modified":false},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.eot","path":"css/fonts/fontawesome-webfont.eot","modified":false},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.svg","path":"css/fonts/fontawesome-webfont.svg","modified":false},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.svgz","path":"css/fonts/fontawesome-webfont.svgz","modified":false},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.ttf","path":"css/fonts/fontawesome-webfont.ttf","modified":false},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.woff","path":"css/fonts/fontawesome-webfont.woff","modified":false},{"_id":"themes/yilia/source/fancybox/blank.gif","path":"fancybox/blank.gif","modified":false},{"_id":"themes/yilia/source/fancybox/fancybox_loading.gif","path":"fancybox/fancybox_loading.gif","modified":false},{"_id":"themes/yilia/source/fancybox/[email protected]","path":"fancybox/[email protected]","modified":false},{"_id":"themes/yilia/source/fancybox/fancybox_overlay.png","path":"fancybox/fancybox_overlay.png","modified":false},{"_id":"themes/yilia/source/fancybox/fancybox_sprite.png","path":"fancybox/fancybox_sprite.png","modified":false},{"_id":"themes/yilia/source/fancybox/[email protected]","path":"fancybox/[email protected]","modified":false},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.css","path":"fancybox/jquery.fancybox.css","modified":false},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.js","path":"fancybox/jquery.fancybox.js","modified":false},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.pack.js","path":"fancybox/jquery.fancybox.pack.js","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/fancybox_buttons.png","path":"fancybox/helpers/fancybox_buttons.png","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-buttons.js","path":"fancybox/helpers/jquery.fancybox-buttons.js","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-buttons.css","path":"fancybox/helpers/jquery.fancybox-buttons.css","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-media.js","path":"fancybox/helpers/jquery.fancybox-media.js","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-thumbs.css","path":"fancybox/helpers/jquery.fancybox-thumbs.css","modified":false},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-thumbs.js","path":"fancybox/helpers/jquery.fancybox-thumbs.js","modified":false},{"_id":"themes/yilia/source/assets/blogImg/Thumbs.db","path":"assets/blogImg/Thumbs.db","modified":false},{"_id":"themes/yilia/source/assets/blogImg/border1px.jpg","path":"assets/blogImg/border1px.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/browser-history.jpg","path":"assets/blogImg/browser-history.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/browser-history2.jpg","path":"assets/blogImg/browser-history2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/bys0.jpg","path":"assets/blogImg/bys0.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/bys1.jpg","path":"assets/blogImg/bys1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/bys2.jpg","path":"assets/blogImg/bys2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/bys3.jpg","path":"assets/blogImg/bys3.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/ckxt0.jpg","path":"assets/blogImg/ckxt0.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/ckxt1.jpg","path":"assets/blogImg/ckxt1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/ckxt2.jpg","path":"assets/blogImg/ckxt2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/ckxt3.jpg","path":"assets/blogImg/ckxt3.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/ckxt4.jpg","path":"assets/blogImg/ckxt4.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/css3_anm.jpg","path":"assets/blogImg/css3_anm.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/css_hack.jpg","path":"assets/blogImg/css_hack.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/immersion.png","path":"assets/blogImg/immersion.png","modified":false},{"_id":"themes/yilia/source/assets/blogImg/imp_search.jpg","path":"assets/blogImg/imp_search.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/instagram1.jpg","path":"assets/blogImg/instagram1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/instagram2.jpg","path":"assets/blogImg/instagram2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge1.jpg","path":"assets/blogImg/jiugongge1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge10.jpg","path":"assets/blogImg/jiugongge10.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge2.jpg","path":"assets/blogImg/jiugongge2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge3.jpg","path":"assets/blogImg/jiugongge3.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge4.jpg","path":"assets/blogImg/jiugongge4.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge5.jpg","path":"assets/blogImg/jiugongge5.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge6.jpg","path":"assets/blogImg/jiugongge6.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge7.jpg","path":"assets/blogImg/jiugongge7.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge8.jpg","path":"assets/blogImg/jiugongge8.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/jiugongge9.jpg","path":"assets/blogImg/jiugongge9.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/lijiang.jpg","path":"assets/blogImg/lijiang.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/lock.jpg","path":"assets/blogImg/lock.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/mediator1.jpg","path":"assets/blogImg/mediator1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/myReader0.jpg","path":"assets/blogImg/myReader0.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/rabbit.jpg","path":"assets/blogImg/rabbit.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/reduce-http.jpg","path":"assets/blogImg/reduce-http.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/safety_001.jpg","path":"assets/blogImg/safety_001.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/safety_002.jpg","path":"assets/blogImg/safety_002.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/safety_003.jpg","path":"assets/blogImg/safety_003.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/safety_004.jpg","path":"assets/blogImg/safety_004.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/safety_005.jpg","path":"assets/blogImg/safety_005.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/up1_tips.jpg","path":"assets/blogImg/up1_tips.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/volunteer1.jpg","path":"assets/blogImg/volunteer1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/volunteer2.jpg","path":"assets/blogImg/volunteer2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/volunteer3.jpg","path":"assets/blogImg/volunteer3.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/web_worker1.png","path":"assets/blogImg/web_worker1.png","modified":false},{"_id":"themes/yilia/source/assets/blogImg/web_worker2.png","path":"assets/blogImg/web_worker2.png","modified":false},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico0.jpg","path":"assets/blogImg/xmas_ico0.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico1.jpg","path":"assets/blogImg/xmas_ico1.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico2.jpg","path":"assets/blogImg/xmas_ico2.jpg","modified":false},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico3.jpg","path":"assets/blogImg/xmas_ico3.jpg","modified":false},{"_id":"themes/yilia/source/assets/demo/border1px.html","path":"assets/demo/border1px.html","modified":false},{"_id":"themes/yilia/source/assets/demo/hack_demo.html","path":"assets/demo/hack_demo.html","modified":false},{"_id":"themes/yilia/source/assets/demo/jiugongge_demo.html","path":"assets/demo/jiugongge_demo.html","modified":false},{"_id":"themes/yilia/source/assets/demo/jiugongge_demo2.html","path":"assets/demo/jiugongge_demo2.html","modified":false},{"_id":"themes/yilia/source/assets/demo/jquery.js","path":"assets/demo/jquery.js","modified":false},{"_id":"themes/yilia/source/assets/demo/coffee_pc_demo/pro-con.html","path":"assets/demo/coffee_pc_demo/pro-con.html","modified":false},{"_id":"themes/yilia/source/assets/demo/coffee_pc_demo/pro-con.js","path":"assets/demo/coffee_pc_demo/pro-con.js","modified":false},{"_id":"themes/yilia/source/assets/demo/mediator/demo.html","path":"assets/demo/mediator/demo.html","modified":false},{"_id":"themes/yilia/source/assets/demo/mediator/mediator.js","path":"assets/demo/mediator/mediator.js","modified":false},{"_id":"themes/yilia/source/assets/demo/mediator/sgws.jpg","path":"assets/demo/mediator/sgws.jpg","modified":false},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/Thumbs.db","path":"assets/demo/pre_css3_demo/Thumbs.db","modified":false},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/demo.html","path":"assets/demo/pre_css3_demo/demo.html","modified":false},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/bg.jpg","path":"assets/demo/pre_css3_demo/bg.jpg","modified":false},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/mhxy.png","path":"assets/demo/pre_css3_demo/mhxy.png","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/index.html","path":"assets/demo/gift/index.html","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/img/paper-b.jpg","path":"assets/demo/gift/img/paper-b.jpg","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/img/paper.jpg","path":"assets/demo/gift/img/paper.jpg","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/img/shake.png","path":"assets/demo/gift/img/shake.png","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/js/index.main.js","path":"assets/demo/gift/js/index.main.js","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/js/shake.js","path":"assets/demo/gift/js/shake.js","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/js/zepto.min.js","path":"assets/demo/gift/js/zepto.min.js","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/css/index.css","path":"assets/demo/gift/css/index.css","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/css/index.scss","path":"assets/demo/gift/css/index.scss","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/css/reset.css","path":"assets/demo/gift/css/reset.css","modified":false},{"_id":"themes/yilia/source/assets/demo/gift/media/gift.ogg","path":"assets/demo/gift/media/gift.ogg","modified":false},{"_id":"themes/yilia/source/assets/demo/my_news_reader/index.html","path":"assets/demo/my_news_reader/index.html","modified":false},{"_id":"themes/yilia/source/assets/demo/my_news_reader/js/main.js","path":"assets/demo/my_news_reader/js/main.js","modified":false},{"_id":"themes/yilia/source/assets/demo/my_news_reader/js/tagConfig.js","path":"assets/demo/my_news_reader/js/tagConfig.js","modified":false}],"Cache":[{"_id":"scaffolds\\draft.md","mtime":1420703797000},{"_id":"scaffolds\\page.md","mtime":1420703797000},{"_id":"scaffolds\\photo.md","mtime":1420703797000},{"_id":"scaffolds\\post.md","mtime":1420703797000},{"_id":"source\\_posts\\hello-world.md","mtime":1420703797000},{"_id":"themes\\landscape\\Gruntfile.js","mtime":1420703797000},{"_id":"themes\\landscape\\_config.yml","mtime":1420703797000},{"_id":"themes\\landscape\\README.md","mtime":1420703797000},{"_id":"themes\\landscape\\LICENSE","mtime":1420703797000},{"_id":"themes\\landscape\\package.json","mtime":1420703797000},{"_id":"themes\\landscape\\scripts\\fancybox.js","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\archive.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\category.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\layout.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\index.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\page.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\post.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\tag.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_widget\\category.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_widget\\archive.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_widget\\tag.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_widget\\recent_posts.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_widget\\tagcloud.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\after-footer.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\archive.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\article.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\archive-post.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\footer.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\google-analytics.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\head.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\header.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\mobile-nav.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\sidebar.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\category.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\nav.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\date.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\gallery.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\tag.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\layout\\_partial\\post\\title.ejs","mtime":1420703797000},{"_id":"themes\\landscape\\source\\js\\script.js","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_extend.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_variables.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\style.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_util\\grid.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_util\\mixin.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\archive.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\article.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\footer.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\comment.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\header.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\highlight.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\mobile.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\sidebar-aside.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\sidebar-bottom.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\_partial\\sidebar.styl","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\fonts\\FontAwesome.otf","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\fonts\\fontawesome-webfont.eot","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\fonts\\fontawesome-webfont.svg","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\fonts\\fontawesome-webfont.ttf","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\fonts\\fontawesome-webfont.woff","mtime":1420703797000},{"_id":"themes\\landscape\\source\\css\\images\\banner.jpg","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\blank.gif","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\fancybox_loading.gif","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\fancybox_overlay.png","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\[email protected]","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\fancybox_sprite.png","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\[email protected]","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\jquery.fancybox.css","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\jquery.fancybox.js","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\jquery.fancybox.pack.js","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\fancybox_buttons.png","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\jquery.fancybox-buttons.css","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\jquery.fancybox-buttons.js","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\jquery.fancybox-media.js","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.css","mtime":1420703797000},{"_id":"themes\\landscape\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.js","mtime":1420703797000},{"_id":"themes\\landscape-plus\\Gruntfile.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\LICENSE","mtime":1420710203000},{"_id":"themes\\landscape-plus\\_config.yml","mtime":1420710203000},{"_id":"themes\\landscape-plus\\README.md","mtime":1420710203000},{"_id":"themes\\landscape-plus\\package.json","mtime":1420710203000},{"_id":"themes\\landscape-plus\\languages\\default.yml","mtime":1420710203000},{"_id":"themes\\landscape-plus\\languages\\zh-TW.yml","mtime":1420710203000},{"_id":"themes\\landscape-plus\\languages\\zh-CN.yml","mtime":1420710203000},{"_id":"themes\\landscape-plus\\scripts\\fancybox.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\archive.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\category.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\index.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\layout.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\page.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\post.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\tag.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\archive.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\category.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\recent_posts.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\links.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\tag.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_widget\\tagcloud.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\after-footer.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\archive-post.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\archive.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\article.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\footer.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\head.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\google-analytics.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\header.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\mathjax.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\mobile-nav.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\sidebar.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\totop.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\category.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\date.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\gallery.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\nav.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\tag.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\layout\\_partial\\post\\title.ejs","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\img\\scrollup.png","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\js\\script.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\blank.gif","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\fancybox_loading.gif","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\[email protected]","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\fancybox_overlay.png","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\fancybox_sprite.png","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\[email protected]","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\jquery.fancybox.css","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\jquery.fancybox.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\fancybox_buttons.png","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\jquery.fancybox.pack.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\jquery.fancybox-buttons.css","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\jquery.fancybox-buttons.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\jquery.fancybox-media.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.css","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.js","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_extend.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_variables.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\style.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\archive.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\article.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\comment.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\footer.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\header.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\highlight.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\mobile.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\sidebar-aside.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\sidebar-bottom.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\totop.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_util\\grid.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_partial\\sidebar.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\_util\\mixin.styl","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\fonts\\FontAwesome.otf","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\fonts\\fontawesome-webfont.eot","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\fonts\\fontawesome-webfont.svg","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\fonts\\fontawesome-webfont.ttf","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\fonts\\fontawesome-webfont.woff","mtime":1420710203000},{"_id":"themes\\landscape-plus\\source\\css\\images\\banner.jpg","mtime":1420710203000},{"_id":"themes\\yilia\\README.md","mtime":1420711300000},{"_id":"themes\\yilia\\_config.yml","mtime":1420716476000},{"_id":"themes\\yilia\\package.json","mtime":1420711300000},{"_id":"themes\\yilia\\scripts\\fancybox.js","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\archive.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\category.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\index.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\layout.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\page.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\post.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\tag.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\after-footer.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\archive.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\archive-post.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\article.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\footer.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\head.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\google-analytics.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\header.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\left-col.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\mobile-nav.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\category.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\date.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\nav.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\share.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\tag.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\duoshuo.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\layout\\_partial\\post\\title.ejs","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\delicious.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\coderwall.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\facebook.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\github.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\google.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\img-err.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\img-loading.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\linkedin.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\pinboard.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\pinterest.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\rss.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\stackoverflow.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\twitter.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\img\\weibo.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\js\\instagram.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\js\\jquery.lazyload.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\js\\main.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\js\\script.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_extend.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_variables.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\style.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\archive.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\article.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\footer.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\header.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\highlight.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\instagram.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\main.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\mobile.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\page.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\share.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_partial\\tagcloud.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_util\\mixin.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\_util\\grid.styl","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\fonts\\fontawesome-webfont.eot","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\fonts\\fontawesome-webfont.svg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\fonts\\fontawesome-webfont.ttf","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\fonts\\fontawesome-webfont.svgz","mtime":1420711300000},{"_id":"themes\\yilia\\source\\css\\fonts\\fontawesome-webfont.woff","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\blank.gif","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\fancybox_loading.gif","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\[email protected]","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\fancybox_overlay.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\[email protected]","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\fancybox_sprite.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\jquery.fancybox.css","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\jquery.fancybox.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\jquery.fancybox.pack.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\fancybox_buttons.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\jquery.fancybox-buttons.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\jquery.fancybox-buttons.css","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\jquery.fancybox-media.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.css","mtime":1420711300000},{"_id":"themes\\yilia\\source\\fancybox\\helpers\\jquery.fancybox-thumbs.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\Thumbs.db","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\browser-history.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\browser-history2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\bys0.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\bys1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\bys2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\border1px.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\bys3.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\ckxt0.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\ckxt1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\ckxt2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\ckxt3.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\ckxt4.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\css3_anm.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\css_hack.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\immersion.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\imp_search.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\instagram1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\instagram2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge10.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge3.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge4.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge5.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge6.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge7.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge8.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\jiugongge9.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\lijiang.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\lock.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\mediator1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\myReader0.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\rabbit.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\reduce-http.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\safety_001.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\safety_002.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\safety_003.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\safety_004.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\safety_005.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\up1_tips.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\volunteer1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\volunteer2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\volunteer3.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\web_worker1.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\web_worker2.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\xmas_ico0.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\xmas_ico1.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\xmas_ico2.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\blogImg\\xmas_ico3.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\border1px.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\hack_demo.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\jiugongge_demo.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\jiugongge_demo2.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\jquery.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\coffee_pc_demo\\pro-con.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\coffee_pc_demo\\pro-con.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\mediator\\demo.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\mediator\\mediator.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\mediator\\sgws.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\pre_css3_demo\\Thumbs.db","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\pre_css3_demo\\bg.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\pre_css3_demo\\demo.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\pre_css3_demo\\mhxy.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\index.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\css\\index.css","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\css\\index.scss","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\css\\reset.css","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\img\\paper-b.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\img\\paper.jpg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\img\\shake.png","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\js\\zepto.min.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\js\\shake.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\js\\index.main.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\gift\\media\\gift.ogg","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\my_news_reader\\index.html","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\my_news_reader\\js\\main.js","mtime":1420711300000},{"_id":"themes\\yilia\\source\\assets\\demo\\my_news_reader\\js\\tagConfig.js","mtime":1420711300000},{"_id":"source\\_posts\\View-Program.md","mtime":1420778109000},{"_id":"source\\img\\longmao.jpg","mtime":1420713367000},{"_id":"source\\img\\jj.png","mtime":1420716747000},{"_id":"source\\404.html","mtime":1420717226000},{"_id":"source\\_posts\\hexo搭建博客.md","mtime":1420771576000},{"_id":"source\\_posts\\View-Controller.md","mtime":1420800395000},{"_id":"scaffolds/draft.md","mtime":1420813405000},{"_id":"scaffolds/page.md","mtime":1420813405000},{"_id":"scaffolds/photo.md","mtime":1420813405000},{"_id":"scaffolds/post.md","mtime":1420813405000},{"_id":"source/404.html","mtime":1420813405000},{"_id":"source/_posts/View-Controller.md","mtime":1420898776000},{"_id":"source/_posts/View-Program.md","mtime":1420813405000},{"_id":"source/_posts/hexo搭建博客.md","mtime":1420813405000},{"_id":"source/img/jj.png","mtime":1420813405000},{"_id":"source/img/longmao.jpg","mtime":1420813405000},{"_id":"source/img/viewController.png","mtime":1420898235000},{"_id":"themes/yilia/README.md","mtime":1420813405000},{"_id":"themes/yilia/_config.yml","mtime":1420813405000},{"_id":"themes/yilia/package.json","mtime":1420813405000},{"_id":"themes/yilia/scripts/fancybox.js","mtime":1420813405000},{"_id":"themes/yilia/layout/archive.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/category.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/index.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/layout.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/page.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/post.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/tag.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/after-footer.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/archive-post.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/archive.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/article.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/footer.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/google-analytics.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/head.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/header.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/left-col.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/mobile-nav.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/category.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/date.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/duoshuo.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/nav.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/share.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/tag.ejs","mtime":1420813405000},{"_id":"themes/yilia/layout/_partial/post/title.ejs","mtime":1420813405000},{"_id":"themes/yilia/source/img/coderwall.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/delicious.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/facebook.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/github.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/google.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/img-err.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/img-loading.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/linkedin.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/pinboard.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/pinterest.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/rss.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/stackoverflow.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/twitter.png","mtime":1420813405000},{"_id":"themes/yilia/source/img/weibo.png","mtime":1420813405000},{"_id":"themes/yilia/source/js/instagram.js","mtime":1420813405000},{"_id":"themes/yilia/source/js/jquery.lazyload.js","mtime":1420813405000},{"_id":"themes/yilia/source/js/main.js","mtime":1420813405000},{"_id":"themes/yilia/source/js/script.js","mtime":1420813405000},{"_id":"themes/yilia/source/css/_extend.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_variables.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/style.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/article.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/archive.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/footer.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/header.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/highlight.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/instagram.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/main.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/mobile.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/page.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/share.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_partial/tagcloud.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_util/grid.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/_util/mixin.styl","mtime":1420813405000},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.eot","mtime":1420813405000},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.svg","mtime":1420813405000},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.svgz","mtime":1420813405000},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.ttf","mtime":1420813405000},{"_id":"themes/yilia/source/css/fonts/fontawesome-webfont.woff","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/blank.gif","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/fancybox_loading.gif","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/[email protected]","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/fancybox_overlay.png","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/fancybox_sprite.png","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/[email protected]","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.css","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.js","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/jquery.fancybox.pack.js","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/fancybox_buttons.png","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-buttons.js","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-buttons.css","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-media.js","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-thumbs.css","mtime":1420813405000},{"_id":"themes/yilia/source/fancybox/helpers/jquery.fancybox-thumbs.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/Thumbs.db","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/border1px.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/browser-history.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/browser-history2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/bys0.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/bys1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/bys2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/bys3.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/ckxt0.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/ckxt1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/ckxt2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/ckxt3.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/ckxt4.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/css3_anm.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/css_hack.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/immersion.png","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/imp_search.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/instagram1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/instagram2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge10.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge3.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge4.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge5.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge6.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge7.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge8.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/jiugongge9.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/lijiang.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/lock.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/mediator1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/myReader0.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/rabbit.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/reduce-http.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/safety_001.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/safety_002.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/safety_003.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/safety_004.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/safety_005.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/up1_tips.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/volunteer1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/volunteer2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/volunteer3.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/web_worker1.png","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/web_worker2.png","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico0.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico1.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico2.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/blogImg/xmas_ico3.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/border1px.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/hack_demo.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/jiugongge_demo.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/jiugongge_demo2.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/jquery.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/coffee_pc_demo/pro-con.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/coffee_pc_demo/pro-con.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/mediator/demo.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/mediator/mediator.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/mediator/sgws.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/Thumbs.db","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/demo.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/bg.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/pre_css3_demo/mhxy.png","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/index.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/img/paper-b.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/img/paper.jpg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/img/shake.png","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/js/index.main.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/js/shake.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/js/zepto.min.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/css/index.css","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/css/index.scss","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/css/reset.css","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/gift/media/gift.ogg","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/my_news_reader/index.html","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/my_news_reader/js/main.js","mtime":1420813405000},{"_id":"themes/yilia/source/assets/demo/my_news_reader/js/tagConfig.js","mtime":1420813405000}],"Category":[],"Page":[{"content":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<title>404</title>\n</head>\n<body>\n\t<script type=\"text/javascript\" src=\"http://www.qq.com/404/search_children.js\" charset=\"utf-8\"></script>\n</body>\n</html>","source":"404.html","raw":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<title>404</title>\n</head>\n<body>\n\t<script type=\"text/javascript\" src=\"http://www.qq.com/404/search_children.js\" charset=\"utf-8\"></script>\n</body>\n</html>","date":1420813405000,"updated":1420813405000,"path":"404.html","excerpt":"","_id":"re8cerrwfsxmom5f","title":"","comments":true,"layout":"page"}],"Post":[{"title":"View Program","date":1420714052000,"tags":["ic3pvv8l9xocagtc"],"content":"<h3 id=\"The_view_draw_cycle_『view生命周期』\">The view draw cycle 『view生命周期』</h3>\n<p>When a view first appears on the screen, the system asks it to draw its content. The system captures a snapshot of this content and uses that snapshot as the view’s visual representation. If you never change the view’s content, the view’s drawing<br>code may never be called again. The snapshot image is reused for most operations involving the view. If you do change the content, you notify the system that the view has changed. The view then repeats the process of drawing the view and capturing a snapshot of the new results.</p>\n<p>当你的view内容变化的时候,我们不直接重绘它,而是通过<em>setNeedsDisplay</em>和<em>setNeedsDisplayInRect:</em>方法通知系统去帮我们完成重绘。</p>\n<blockquote>\n<p>When the contents of your view change, you do not redraw those changes directly. Instead, you invalidate the view using either the setNeedsDisplay or setNeedsDisplayInRect: method. </p>\n</blockquote>\n<h3 id=\"Content_Mode_『如何拉伸属性』\">Content Mode 『如何拉伸属性』</h3>\n<p>设置当view的形状发生变化时,它的content如何重绘,例如图片是拉伸,平铺等。</p>\n<blockquote>\n<p>Each view has a content mode that controls how the view recycles its content in response to changes in the view’s geometry and whether it recycles its content at all. </p>\n</blockquote>\n<p>一般有这些类型 </p>\n<ul>\n<li>UIViewContentModeScaleAspectFill <em>【满屏-不变形】</em></li>\n<li>UIViewContentModeScaleAspectFit <em>【适屏-不变形】</em></li>\n<li>UIViewContentModeScaleToFill <em>【拉到铺满-会变形】</em></li>\n</ul>\n<p>你也可以使用自己定义的<strong>drawRect:</strong>方法来自定义,此时应该设置Contenct Mode为: </p>\n<ul>\n<li>UIViewContentModeRedraw </li>\n</ul>\n<h3 id=\"Built-In_Animation_Support『动画』\">Built-In Animation Support『动画』</h3>\n<p>要使用动画,只需两个步骤 </p>\n<ul>\n<li>告诉UIKit你希望执行动画</li>\n<li>改变属性的值<blockquote>\n<ol>\n<li>Tell UIKit that you want to perform an animation.</li>\n<li>Change the value of the property. </li>\n</ol>\n</blockquote>\n</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"preprocessor\">#例子为某个viewController中的方法,self.view为视图控制器根式图</span></div><div class=\"line\"><span class=\"preprocessor\">#告诉UIKit你希望执行动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> beginAnimations:<span class=\"string\">@\"View Flip\"</span> context:<span class=\"literal\">NULL</span>];</div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationDuration:<span class=\"number\">0.4</span>];</div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationCurve:UIViewAnimationCurveEaseInOut];</div><div class=\"line\">..<span class=\"variable\">.other</span> codes</div><div class=\"line\"><span class=\"preprocessor\">#在指定的view中假如动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:<span class=\"keyword\">self</span><span class=\"variable\">.view</span> cache:<span class=\"literal\">YES</span>];</div><div class=\"line\">..<span class=\"variable\">.other</span> codes</div><div class=\"line\"><span class=\"preprocessor\">#提交动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> commitAnimations];</div></pre></td></tr></table></figure>\n\n<p><a id=\"more\"></a></p>\n<h3 id=\"View_Geometry_and_Coordinate_Systems_『坐标系统』\">View Geometry and Coordinate Systems 『坐标系统』</h3>\n<p>The Relationship of the Frame, Bounds, and Center Properties<br>A view object tracks its size and location using its frame, bounds, and center properties:<br>● The <strong>frame</strong> property contains the frame rectangle, which specifies the size and location of the view in its <strong><em>superview’s coordinate system.『frame是相对父视图的坐标系统』</em></strong><br>● The <strong>bounds</strong> property contains the bounds rectangle, which specifies the size of the view (and its content origin) in the view’s own <strong><em>local coordinate system.『bounds是相对自身坐标系统 』</em></strong><br>● The center property contains the known center point of the view in the <strong><em>superview’s coordinate system.『center也是相对父视图坐标系统』</em></strong> </p>\n<p>更改view的形状和坐标值,一边我们使用Frame和Center属性。</p>\n<blockquote>\n<p>You use the center and frame properties primarily for manipulating the geometry of the current view.If you are changing only the position of the view (and not its size), the center property is the preferred way to do so.</p>\n</blockquote>\n<p>Bounds就是定义了在view自身中的一个区域, 在这个区域内画的图形才是可见的.</p>\n<blockquote>\n<p>You use the bounds property primarily during drawing. The bounds rectangle is expressed in the view’s own local coordinate system. The default origin of this rectangle is (0, 0) and its size matches the size of the frame rectangle. Anything you draw inside this rectangle is part of the view’s visible content.</p>\n</blockquote>\n<h3 id=\"Points_Versus_Pixels_『坐标与像素』\">Points Versus Pixels 『坐标与像素』</h3>\n<p>在iOS中的所有坐标值和距离都是用浮点数坐标Points表示的.</p>\n<blockquote>\n<p>Device Screen dimensions (in points) </p>\n<p>iPhone and iPod touch devices with 4-inch Retina display <strong>320 x 568</strong><br>Other iPhone and iPod touch devices <strong>320 x 480</strong><br>iPad <strong>768 x 1024</strong> </p>\n</blockquote>\n<h2 id=\"Windows『窗口』\">Windows『窗口』</h2>\n<p>每个iOS程序至少需要一个窗口(UIWindow类), 有些可能程序可能需要多个. 一个window主要负责这些事项:<br>一个提供显示的区域, 传递事件和与view controller一起为屏幕旋转提供支持.</p>\n<p>Every iOS application needs at least one window—an instance of the UIWindow class—and some may include more than one window. A window object has several responsibilities: </p>\n<ul>\n<li>It contains your application’s visible content. </li>\n<li>It plays a key role in the delivery of touch events to your views and other application objects. </li>\n<li>It works with your application’s view controllers to facilitate orientation changes. </li>\n</ul>\n<blockquote>\n<p>In iOS, windows do not have title bars, close boxes, or any other visual adornments. A window is always just a blank container for one or more views. Also, applications do not change their content by showing new windows. When you want to change the displayed content, you change the frontmost views of your window instead.</p>\n</blockquote>\n<h3 id=\"Creating_a_Window_Programmatically_『创建窗口』\">Creating a Window Programmatically 『创建窗口』</h3>\n<p>通过代码创建窗口</p>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div></pre></td><td class=\"code\"><pre><div class=\"line\">self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]</div><div class=\"line\">autorelease];</div><div class=\"line\"><span class=\"keyword\">...</span></div><div class=\"line\">[self.window makeKeyAndVisible];</div></pre></td></tr></table></figure>\n\n<h3 id=\"Adding_Content_to_Your_Window_『添加content到窗口』\">Adding Content to Your Window 『添加content到窗口』</h3>\n<p>通常每个window都有一个root view对象, 它包含所有其他views并显示内容. 这样的话如果你需要更新窗口中的内容, 你仅需要替换root view就可以完成. 安装一个view到你的window中, 使用<strong>addSubview:</strong>方法. 例如安装一个由view controller管理的视图:</p>\n<blockquote>\n<p>Each window typically has a single root view object (managed by a corresponding view controller) that contains all of the other views representing your content. Using a single root view simplifies the process of changing your interface; to display new content, all you have to do is replace the root view. To install a view in your<br>window, use the addSubview: method. For example, to install a view that is managed by a view controller, you would use code similar to the following: </p>\n</blockquote>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div></pre></td><td class=\"code\"><pre><div class=\"line\">[window addSubvie<span class=\"variable\">w:viewController</span>.<span class=\"keyword\">view</span>];</div></pre></td></tr></table></figure>\n\n<p>如果在nib设置中设置了root viewController, 当window加载时, UIKit将自动安装root viewController中的view到window中.</p>\n<blockquote>\n<p>If the root view of your window is provided by a container view controller (such as a <strong>tabbar controller, navigation controller, or split-view controller</strong>), you do not need to set the initial size of the view yourself. The container view controller automatically sizes its view appropriately based on whether the status bar is visible.</p>\n</blockquote>\n<h3 id=\"Monitoring_Window_Changes_『监视窗口变化』\">Monitoring Window Changes 『监视窗口变化』</h3>\n<p>If you want to track the appearance or disappearance of windows inside your application, you can do so using these window-related notifications: </p>\n<ul>\n<li>UIWindowDidBecomeVisibleNotification</li>\n<li>UIWindowDidBecomeHiddenNotification </li>\n<li>UIWindowDidBecomeKeyNotification </li>\n<li>UIWindowDidResignKeyNotification </li>\n</ul>\n<h2 id=\"View_『视图』\">View 『视图』</h2>\n<p>由于view是你的程序中与用户最主要的交互的交互方式, view有非常多的功能, 例如下面这些:</p>\n<ul>\n<li>Layout and subview management<ul>\n<li>A view defines its own default resizing behaviors in relation to its parent view.</li>\n<li>A view can manage a list of subviews.</li>\n<li>A view can override the size and position of its subviews as needed.</li>\n<li>A view can convert points in its coordinate system to the coordinate systems of other views or the<br>window.</li>\n</ul>\n</li>\n<li>Drawing and animation<ul>\n<li>A view draws content in its rectangular area.</li>\n<li>Some view properties can be animated to new values.</li>\n</ul>\n</li>\n<li>Event handling<ul>\n<li>A view can receive touch events.</li>\n<li>A view participates in the responder chain.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"Creating_and_Configuring_View_Objects『创建和设置视图』\">Creating and Configuring View Objects『创建和设置视图』</h3>\n<p>手动在程序中创建一个view: </p>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"built_in\">CGRect</span> viewRect = CGRectMake(<span class=\"number\">0</span>, <span class=\"number\">0</span>, <span class=\"number\">100</span>, <span class=\"number\">100</span>); </div><div class=\"line\"><span class=\"built_in\">UIView</span>* myView = [[<span class=\"built_in\">UIView</span> alloc] initWithFrame:viewRect];</div></pre></td></tr></table></figure>\n\n\n\n<h3 id=\"Adding_and_Removing_Subviews_『视图层次管理方法』\">Adding and Removing Subviews 『视图层次管理方法』</h3>\n<p>主要有下面这些方法:</p>\n<ul>\n<li>addSubview:</li>\n<li>insertSubview:…</li>\n<li>bringSubviewToFront:</li>\n<li>sendSubviewToBack:</li>\n<li>exchangeSubviewAtIndex:withSubviewAtIndex:</li>\n<li>removeFromSuperview:</li>\n</ul>\n<p>注意: 如果subview的frame超过了superview的bounds, 默认超出的部分是不会被裁剪掉的,就是会被显示出来,如果需要被裁剪,设置superview中的clipsToBounds属性为YES即可.</p>\n<blockquote>\n<p>A subview whose frame lies outside of its superview’s visible bounds is not clipped by default. If you want your subview to be clipped to the superview’s bounds, you must explicitly set the clipsToBounds property of the superview to YES.</p>\n</blockquote>\n<h3 id=\"Locating_Views_in_a_View_Hierarchy_『定位视图Tag』\">Locating Views in a View Hierarchy 『定位视图Tag』</h3>\n<p>在view hirearchy中获取一个view, 通过如下方法:</p>\n<ul>\n<li>存一个指向这个view的指针</li>\n<li>给view标识一个tag, 通过<strong>viewWithTag:</strong>方法获取它</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div></pre></td><td class=\"code\"><pre><div class=\"line\">#通过<span class=\"keyword\">tag</span>属性设置<span class=\"keyword\">tag</span>值</div><div class=\"line\">#@property(nonatomic) NSInteger <span class=\"keyword\">tag</span></div><div class=\"line\">myView.<span class=\"keyword\">tag</span>=<span class=\"number\">100</span>;</div><div class=\"line\">#通过viewWithTag:方法获取指定<span class=\"keyword\">tag</span>值的<span class=\"keyword\">view</span></div><div class=\"line\">UIView* herView=[self.window viewWithTa<span class=\"variable\">g:100</span>]</div></pre></td></tr></table></figure>\n\n<blockquote>\n<p>There are two ways to locate views in a view hierarchy:</p>\n<ul>\n<li>Store pointers to any relevant views in an appropriate location, such as in the view controller that owns the views. </li>\n<li>Assign a unique integer to each view’s tag property and use the viewWithTag: method to locate it.</li>\n</ul>\n</blockquote>\n<h3 id=\"Translating,_Scaling,_and_Rotating_Views『平移缩放和旋转』\">Translating, Scaling, and Rotating Views『平移缩放和旋转』</h3>\n<p>通过view中的transform属性来旋转 </p>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"preprocessor\">#对视图比例缩放</span></div><div class=\"line\">CGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx, CGFloat sy );</div><div class=\"line\"><span class=\"preprocessor\">#对视图做变焦旋转</span></div><div class=\"line\">CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );</div><div class=\"line\"><span class=\"preprocessor\">#对视图做平移</span></div><div class=\"line\">CGAffineTransform CGAffineTransformConcat ( CGAffineTransform t1, CGAffineTransform t2 );</div><div class=\"line\"></div><div class=\"line\"><span class=\"preprocessor\"># M_PI/4.0 is one quarter of a half circle, or 45 degrees. </span></div><div class=\"line\">CGAffineTransform xform = CGAffineTransformMakeRotation(M_PI/<span class=\"number\">4.0</span>); </div><div class=\"line\">self.view.transform = xform;</div></pre></td></tr></table></figure>\n\n<h3 id=\"Converting_Coordinates_in_the_View_Hierarchy『坐标系统转换』\">Converting Coordinates in the View Hierarchy『坐标系统转换』</h3>\n<p>坐标转换</p>\n<p>convertPoint:fromView:<br>convertRect:fromView:<br>convertPoint:toView:<br>convertRect:toView:<br>convertPoint:fromWindow:<br>convertRect:fromWindow:<br>convertPoint:toWindow:<br>convertRect:toWindow: </p>\n","source":"_posts/View-Program.md","raw":"title: View Program\ndate: 2015-01-08 18:47:32\ntags: iOS\n---\n\n###The view draw cycle 『view生命周期』\nWhen a view first appears on the screen, the system asks it to draw its content. The system captures a snapshot of this content and uses that snapshot as the view’s visual representation. If you never change the view’s content, the view’s drawing\ncode may never be called again. The snapshot image is reused for most operations involving the view. If you do change the content, you notify the system that the view has changed. The view then repeats the process of drawing the view and capturing a snapshot of the new results.\n\n当你的view内容变化的时候,我们不直接重绘它,而是通过*setNeedsDisplay*和*setNeedsDisplayInRect:*方法通知系统去帮我们完成重绘。\n>When the contents of your view change, you do not redraw those changes directly. Instead, you invalidate the view using either the setNeedsDisplay or setNeedsDisplayInRect: method. \n\n###Content Mode 『如何拉伸属性』\n\n设置当view的形状发生变化时,它的content如何重绘,例如图片是拉伸,平铺等。\n>Each view has a content mode that controls how the view recycles its content in response to changes in the view’s geometry and whether it recycles its content at all. \n\n一般有这些类型 \n\n* UIViewContentModeScaleAspectFill\t\t*【满屏-不变形】*\n* UIViewContentModeScaleAspectFit\t\t*【适屏-不变形】*\n* UIViewContentModeScaleToFill\t\t\t*【拉到铺满-会变形】*\n\n你也可以使用自己定义的**drawRect:**方法来自定义,此时应该设置Contenct Mode为: \n\n* UIViewContentModeRedraw \n\n###Built-In Animation Support『动画』\n要使用动画,只需两个步骤 \n\n* 告诉UIKit你希望执行动画\n* 改变属性的值\n>1. Tell UIKit that you want to perform an animation.\n>2. Change the value of the property. \n\n```\n#例子为某个viewController中的方法,self.view为视图控制器根式图\n#告诉UIKit你希望执行动画\n[UIView beginAnimations:@\"View Flip\" context:NULL];\n[UIView setAnimationDuration:0.4];\n[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];\n...other codes\n#在指定的view中假如动画\n[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];\n...other codes\n#提交动画\n[UIView commitAnimations];\n\n```\n\n<!--more-->\n###View Geometry and Coordinate Systems 『坐标系统』\n\n\nThe Relationship of the Frame, Bounds, and Center Properties \nA view object tracks its size and location using its frame, bounds, and center properties: \n● The **frame** property contains the frame rectangle, which specifies the size and location of the view in its ***superview’s coordinate system.『frame是相对父视图的坐标系统』*** \n● The **bounds** property contains the bounds rectangle, which specifies the size of the view (and its content origin) in the view’s own ***local coordinate system.『bounds是相对自身坐标系统 』*** \n● The center property contains the known center point of the view in the ***superview’s coordinate system.『center也是相对父视图坐标系统』*** \n\n更改view的形状和坐标值,一边我们使用Frame和Center属性。\n>You use the center and frame properties primarily for manipulating the geometry of the current view.If you are changing only the position of the view (and not its size), the center property is the preferred way to do so.\n\nBounds就是定义了在view自身中的一个区域, 在这个区域内画的图形才是可见的.\n>You use the bounds property primarily during drawing. The bounds rectangle is expressed in the view’s own local coordinate system. The default origin of this rectangle is (0, 0) and its size matches the size of the frame rectangle. Anything you draw inside this rectangle is part of the view’s visible content.\n\n###Points Versus Pixels 『坐标与像素』\n\n在iOS中的所有坐标值和距离都是用浮点数坐标Points表示的.\n\n>Device Screen dimensions (in points) \n> \niPhone and iPod touch devices with 4-inch Retina display **320 x 568** \nOther iPhone and iPod touch devices **320 x 480** \niPad **768 x 1024** \n\n##Windows『窗口』\n每个iOS程序至少需要一个窗口(UIWindow类), 有些可能程序可能需要多个. 一个window主要负责这些事项:\n一个提供显示的区域, 传递事件和与view controller一起为屏幕旋转提供支持.\n\nEvery iOS application needs at least one window—an instance of the UIWindow class—and some may include more than one window. A window object has several responsibilities: \n \n* It contains your application’s visible content. \n* It plays a key role in the delivery of touch events to your views and other application objects. \n* It works with your application’s view controllers to facilitate orientation changes. \n\n>In iOS, windows do not have title bars, close boxes, or any other visual adornments. A window is always just a blank container for one or more views. Also, applications do not change their content by showing new windows. When you want to change the displayed content, you change the frontmost views of your window instead.\n\n###Creating a Window Programmatically 『创建窗口』\n通过代码创建窗口\n\n```\nself.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]\nautorelease];\n...\n[self.window makeKeyAndVisible];\n```\n###Adding Content to Your Window 『添加content到窗口』\n\n通常每个window都有一个root view对象, 它包含所有其他views并显示内容. 这样的话如果你需要更新窗口中的内容, 你仅需要替换root view就可以完成. 安装一个view到你的window中, 使用**addSubview:**方法. 例如安装一个由view controller管理的视图:\n\n>Each window typically has a single root view object (managed by a corresponding view controller) that contains all of the other views representing your content. Using a single root view simplifies the process of changing your interface; to display new content, all you have to do is replace the root view. To install a view in your\nwindow, use the addSubview: method. For example, to install a view that is managed by a view controller, you would use code similar to the following: \n \n```\n[window addSubview:viewController.view];\n```\n\n如果在nib设置中设置了root viewController, 当window加载时, UIKit将自动安装root viewController中的view到window中.\n\n>If the root view of your window is provided by a container view controller (such as a **tabbar controller, navigation controller, or split-view controller**), you do not need to set the initial size of the view yourself. The container view controller automatically sizes its view appropriately based on whether the status bar is visible.\n\n###Monitoring Window Changes 『监视窗口变化』\nIf you want to track the appearance or disappearance of windows inside your application, you can do so using these window-related notifications: \n\n* UIWindowDidBecomeVisibleNotification\n* UIWindowDidBecomeHiddenNotification \n* UIWindowDidBecomeKeyNotification \n* UIWindowDidResignKeyNotification \n\n##View 『视图』\n\n由于view是你的程序中与用户最主要的交互的交互方式, view有非常多的功能, 例如下面这些:\n \n* Layout and subview management\n\t* A view defines its own default resizing behaviors in relation to its parent view.\n\t* A view can manage a list of subviews.\n\t* A view can override the size and position of its subviews as needed.\n\t* A view can convert points in its coordinate system to the coordinate systems of other views or the\nwindow.\n* Drawing and animation\n\t* A view draws content in its rectangular area.\n\t* Some view properties can be animated to new values.\n* Event handling\n\t* A view can receive touch events.\n\t* A view participates in the responder chain.\n\n###Creating and Configuring View Objects『创建和设置视图』\n\n手动在程序中创建一个view: \n \n```\nCGRect viewRect = CGRectMake(0, 0, 100, 100); \nUIView* myView = [[UIView alloc] initWithFrame:viewRect];\n``` \n\n###Adding and Removing Subviews 『视图层次管理方法』\n主要有下面这些方法:\n\n* addSubview:\n* insertSubview:...\n* bringSubviewToFront:\n* sendSubviewToBack:\n* exchangeSubviewAtIndex:withSubviewAtIndex:\n* removeFromSuperview:\n\n注意: 如果subview的frame超过了superview的bounds, 默认超出的部分是不会被裁剪掉的,就是会被显示出来,如果需要被裁剪,设置superview中的clipsToBounds属性为YES即可.\n>A subview whose frame lies outside of its superview’s visible bounds is not clipped by default. If you want your subview to be clipped to the superview’s bounds, you must explicitly set the clipsToBounds property of the superview to YES.\n\n###Locating Views in a View Hierarchy 『定位视图Tag』\n在view hirearchy中获取一个view, 通过如下方法:\n\n* 存一个指向这个view的指针\n* 给view标识一个tag, 通过**viewWithTag:**方法获取它\n\n```\n#通过tag属性设置tag值\n#@property(nonatomic) NSInteger tag\nmyView.tag=100;\n#通过viewWithTag:方法获取指定tag值的view\nUIView* herView=[self.window viewWithTag:100]\n\n```\n\n\n>There are two ways to locate views in a view hierarchy:\n> \n* Store pointers to any relevant views in an appropriate location, such as in the view controller that owns the views. \n* Assign a unique integer to each view’s tag property and use the viewWithTag: method to locate it.\n\n###Translating, Scaling, and Rotating Views『平移缩放和旋转』\n通过view中的transform属性来旋转 \n\n```\n#对视图比例缩放\nCGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx, CGFloat sy );\n#对视图做变焦旋转\nCGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );\n#对视图做平移\nCGAffineTransform CGAffineTransformConcat ( CGAffineTransform t1, CGAffineTransform t2 );\n\n# M_PI/4.0 is one quarter of a half circle, or 45 degrees. \nCGAffineTransform xform = CGAffineTransformMakeRotation(M_PI/4.0); \nself.view.transform = xform; \n```\n\n###Converting Coordinates in the View Hierarchy『坐标系统转换』\n坐标转换\n\nconvertPoint:fromView: \nconvertRect:fromView: \nconvertPoint:toView: \nconvertRect:toView: \nconvertPoint:fromWindow: \nconvertRect:fromWindow: \nconvertPoint:toWindow: \nconvertRect:toWindow: \n","slug":"View-Program","updated":1420813405000,"excerpt":"<h3 id=\"The_view_draw_cycle_『view生命周期』\">The view draw cycle 『view生命周期』</h3>\n<p>When a view first appears on the screen, the system asks it to draw its content. The system captures a snapshot of this content and uses that snapshot as the view’s visual representation. If you never change the view’s content, the view’s drawing<br>code may never be called again. The snapshot image is reused for most operations involving the view. If you do change the content, you notify the system that the view has changed. The view then repeats the process of drawing the view and capturing a snapshot of the new results.</p>\n<p>当你的view内容变化的时候,我们不直接重绘它,而是通过<em>setNeedsDisplay</em>和<em>setNeedsDisplayInRect:</em>方法通知系统去帮我们完成重绘。</p>\n<blockquote>\n<p>When the contents of your view change, you do not redraw those changes directly. Instead, you invalidate the view using either the setNeedsDisplay or setNeedsDisplayInRect: method. </p>\n</blockquote>\n<h3 id=\"Content_Mode_『如何拉伸属性』\">Content Mode 『如何拉伸属性』</h3>\n<p>设置当view的形状发生变化时,它的content如何重绘,例如图片是拉伸,平铺等。</p>\n<blockquote>\n<p>Each view has a content mode that controls how the view recycles its content in response to changes in the view’s geometry and whether it recycles its content at all. </p>\n</blockquote>\n<p>一般有这些类型 </p>\n<ul>\n<li>UIViewContentModeScaleAspectFill <em>【满屏-不变形】</em></li>\n<li>UIViewContentModeScaleAspectFit <em>【适屏-不变形】</em></li>\n<li>UIViewContentModeScaleToFill <em>【拉到铺满-会变形】</em></li>\n</ul>\n<p>你也可以使用自己定义的<strong>drawRect:</strong>方法来自定义,此时应该设置Contenct Mode为: </p>\n<ul>\n<li>UIViewContentModeRedraw </li>\n</ul>\n<h3 id=\"Built-In_Animation_Support『动画』\">Built-In Animation Support『动画』</h3>\n<p>要使用动画,只需两个步骤 </p>\n<ul>\n<li>告诉UIKit你希望执行动画</li>\n<li>改变属性的值<blockquote>\n<ol>\n<li>Tell UIKit that you want to perform an animation.</li>\n<li>Change the value of the property. </li>\n</ol>\n</blockquote>\n</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"preprocessor\">#例子为某个viewController中的方法,self.view为视图控制器根式图</span></div><div class=\"line\"><span class=\"preprocessor\">#告诉UIKit你希望执行动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> beginAnimations:<span class=\"string\">@\"View Flip\"</span> context:<span class=\"literal\">NULL</span>];</div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationDuration:<span class=\"number\">0.4</span>];</div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationCurve:UIViewAnimationCurveEaseInOut];</div><div class=\"line\">..<span class=\"variable\">.other</span> codes</div><div class=\"line\"><span class=\"preprocessor\">#在指定的view中假如动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:<span class=\"keyword\">self</span><span class=\"variable\">.view</span> cache:<span class=\"literal\">YES</span>];</div><div class=\"line\">..<span class=\"variable\">.other</span> codes</div><div class=\"line\"><span class=\"preprocessor\">#提交动画</span></div><div class=\"line\">[<span class=\"built_in\">UIView</span> commitAnimations];</div></pre></td></tr></table></figure>\n\n<p>","_id":"rnxtgcox5h0sfv0o","categories":[],"comments":true,"layout":"post","photos":[],"link":""},{"title":"hexo搭建博客","date":1420717369000,"tags":["xxx4h2aj3rrqhdw3"],"content":"<p>本片随笔主要记录在使用hexo搭建博客过程中碰到的一些问题点</p>\n<h4 id=\"1-_hexo_generate不生成css文件,_造成页面没有加载不了样式\">1. hexo generate不生成css文件, 造成页面没有加载不了样式</h4>\n<blockquote>\n<p>由于hexo-renderer-stylus是为hexo 3.0所写, 使用旧版本就能解决问题 </p>\n</blockquote>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"variable\">$ </span>npm install hexo-renderer-stylus<span class=\"variable\">@0</span>.<span class=\"number\">1</span> --save</div></pre></td></tr></table></figure>\n\n<h4 id=\"2-_hexo的配置\">2. hexo的配置</h4>\n<blockquote>\n<p>主要配置文件<strong>/blog/_config.yml</strong>和主题文件<strong>/theme_name/_config.yml</strong><br>参考博客:<a href=\"http://zipperary.com/2013/05/29/hexo-guide-3/\" target=\"_blank\" rel=\"external\">http://zipperary.com/2013/05/29/hexo-guide-3/</a></p>\n</blockquote>\n<h4 id=\"3-_存放博客图片和一些素材\">3. 存放博客图片和一些素材</h4>\n<blockquote>\n<p>在博客目录source中创建一个img文件加, 然后将你要用的图片放在那里, 然后使用/img/image_name引用它就可以啦<br>404页面: 直接在source目录下面创建一个就可以了, 可以使用腾讯公益.</p>\n</blockquote>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"doctype\"><!DOCTYPE html></span></div><div class=\"line\"><span class=\"tag\"><<span class=\"title\">html</span> <span class=\"attribute\">lang</span>=<span class=\"value\">\"en\"</span>></span></div><div class=\"line\"><span class=\"tag\"><<span class=\"title\">head</span>></span></div><div class=\"line\">\t<span class=\"tag\"><<span class=\"title\">meta</span> <span class=\"attribute\">charset</span>=<span class=\"value\">\"UTF-8\"</span>></span></div><div class=\"line\">\t<span class=\"tag\"><<span class=\"title\">title</span>></span>404<span class=\"tag\"></<span class=\"title\">title</span>></span></div><div class=\"line\"><span class=\"tag\"></<span class=\"title\">head</span>></span></div><div class=\"line\"><span class=\"tag\"><<span class=\"title\">body</span>></span></div><div class=\"line\">\t<span class=\"tag\"><<span class=\"title\">script</span> <span class=\"attribute\">type</span>=<span class=\"value\">\"text/javascript\"</span> <span class=\"attribute\">src</span>=<span class=\"value\">\"http://www.qq.com/404/search_children.js\"</span> <span class=\"attribute\">charset</span>=<span class=\"value\">\"utf-8\"</span>></span><span class=\"javascript\"></span><span class=\"tag\"></<span class=\"title\">script</span>></span></div><div class=\"line\"><span class=\"tag\"></<span class=\"title\">body</span>></span></div><div class=\"line\"><span class=\"tag\"></<span class=\"title\">html</span>></span></div></pre></td></tr></table></figure>\n\n<h4 id=\"4-_使用git保管hexo\">4. 使用git保管hexo</h4>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div><div class=\"line\">12</div><div class=\"line\">13</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"preprocessor\">#1. 创建一个仓库jackhub_blog, 并clone到本地仓库</span></div><div class=\"line\">$ git clone https:<span class=\"comment\">//github.com/jackhub/jackhub_blog.git</span></div><div class=\"line\"></div><div class=\"line\"><span class=\"preprocessor\">#2. 加hexo文件复制过来到git目录, 添加并提交</span></div><div class=\"line\">$ git add .</div><div class=\"line\">$ git commit -m <span class=\"string\">\"blog init\"</span></div><div class=\"line\"></div><div class=\"line\"><span class=\"preprocessor\">#3. 同步到git远程仓库中</span></div><div class=\"line\">$ git push</div><div class=\"line\"></div><div class=\"line\"><span class=\"preprocessor\">#4. 主题文件中有.git目录,会被当作一个submodule, 是push不到github的, 删除.git目录即可.</span></div><div class=\"line\"></div><div class=\"line\"><span class=\"preprocessor\">#5. 如果已经添加了一个submodule, 可以直接删除这个submodule,使用git rm --cached path_name删除缓存, 重新git add .&& git commit -m \"\" &&git push</span></div></pre></td></tr></table></figure>\n\n","source":"_posts/hexo搭建博客.md","raw":"title: hexo搭建博客\ndate: 2015-01-08 19:42:49\ntags: 随笔\n---\n\n本片随笔主要记录在使用hexo搭建博客过程中碰到的一些问题点\n\n####1. hexo generate不生成css文件, 造成页面没有加载不了样式\n>由于hexo-renderer-stylus是为hexo 3.0所写, 使用旧版本就能解决问题 \n>```\n$ npm install [email protected] --save\n```\n\n####2. hexo的配置\n>主要配置文件**/blog/_config.yml**和主题文件**/theme_name/_config.yml** \n>参考博客:http://zipperary.com/2013/05/29/hexo-guide-3/\n\n####3. 存放博客图片和一些素材\n>在博客目录source中创建一个img文件加, 然后将你要用的图片放在那里, 然后使用/img/image_name引用它就可以啦 \n>404页面: 直接在source目录下面创建一个就可以了, 可以使用腾讯公益.\n\n```\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<title>404</title>\n</head>\n<body>\n\t<script type=\"text/javascript\" src=\"http://www.qq.com/404/search_children.js\" charset=\"utf-8\"></script>\n</body>\n</html>\n```\n\n####4. 使用git保管hexo \n\n```\n#1. 创建一个仓库jackhub_blog, 并clone到本地仓库\n$ git clone https://github.com/jackhub/jackhub_blog.git\n\n#2. 加hexo文件复制过来到git目录, 添加并提交\n$ git add .\n$ git commit -m \"blog init\"\n\n#3. 同步到git远程仓库中\n$ git push\n\n#4. 主题文件中有.git目录,会被当作一个submodule, 是push不到github的, 删除.git目录即可.\n\n#5. 如果已经添加了一个submodule, 可以直接删除这个submodule,使用git rm --cached path_name删除缓存, 重新git add .&& git commit -m \"\" &&git push\n```","slug":"hexo搭建博客","updated":1420813405000,"excerpt":"","_id":"odp6532ojzocj9z3","categories":[],"comments":true,"layout":"post","photos":[],"link":""},{"title":"View Controller","date":1420786131000,"tags":["ic3pvv8l9xocagtc"],"content":"<h3 id=\"ViewController的结构关系\">ViewController的结构关系</h3>\n<ul>\n<li>ViewController中包含一个指向storyboard的指针, 一个项目中只有一个storyboard或者没有, 所有的其他viewController也都指向它.</li>\n<li>viewController中包含一个UIview的指针, 它是这个viewCntroller的根视图, 被viewControl管理的其他视图都在它之上.</li>\n<li>viewControl来负责实现它所管理的视图的响应方式, 这个实现了显示和控制的隔离.</li>\n</ul>\n<p><img src=\"http://i2.tietuku.com/aa8b64d36df89717.png\" alt=\"viewController\"></p>\n<h3 id=\"ViewControl与windows的关系\">ViewControl与windows的关系</h3>\n<p>对下面的图片解释一下: </p>\n<ul>\n<li>window从screen那里获取屏幕的显示信息,根据此初始化UIWindow frame大小.</li>\n<li>UIWindow中包含有一个*rootViewController的指针, 我们让它指向我们的viewController, 这样我们viewControl中的根UIview会自动添加为UIWindow的subView, viewController中的内容就能显示在窗口中了.</li>\n</ul>\n<blockquote>\n<p>A view controller is usually owned by a window or another view controller.If a view controller is owned by a window object, it acts as the window’s root view controller.The view controller’s root view is added as a subview of the window and resized to fill the window.If the view controller is owned by another view controller, then the parent view controller determines when and how the child view controller’s contents are displayed.</p>\n</blockquote>\n<p><a id=\"more\"></a><br><img src=\"http://i2.tietuku.com/5def40f7afd0c98b.png\" alt=\"viewWindows\"></p>\n<h2 id=\"演示4中不同的视图控制实现方式\">演示4中不同的视图控制实现方式</h2>\n<ul>\n<li>完全手动编写ViewControl</li>\n<li>不使用ViewController</li>\n<li>使用nib文件初始化viewController</li>\n<li>使用storyboard管理ViewController</li>\n</ul>\n<p><img src=\"/img/viewController.png\" alt=\"viewController\"></p>\n<h3 id=\"不使用ViewController\">不使用ViewController</h3>\n<ul>\n<li>在AppDelegate中手动完成显示『View』和控制『Controller』</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div><div class=\"line\">12</div><div class=\"line\">13</div><div class=\"line\">14</div><div class=\"line\">15</div><div class=\"line\">16</div><div class=\"line\">17</div><div class=\"line\">18</div><div class=\"line\">19</div><div class=\"line\">20</div><div class=\"line\">21</div><div class=\"line\">22</div><div class=\"line\">23</div><div class=\"line\">24</div><div class=\"line\">25</div><div class=\"line\">26</div><div class=\"line\">27</div><div class=\"line\">28</div><div class=\"line\">29</div><div class=\"line\">30</div><div class=\"line\">31</div><div class=\"line\">32</div><div class=\"line\">33</div><div class=\"line\">34</div><div class=\"line\">35</div><div class=\"line\">36</div><div class=\"line\">37</div><div class=\"line\">38</div><div class=\"line\">39</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"comment\">//@implementation AppDelegate</span></div><div class=\"line\"><span class=\"comment\">//显示『View』</span></div><div class=\"line\">- (<span class=\"built_in\">BOOL</span>)application:(<span class=\"built_in\">UIApplication</span> *)application didFinishLaunchingWithOptions:(<span class=\"built_in\">NSDictionary</span> *)launchOptions {</div><div class=\"line\"><span class=\"comment\">// Override point for customization after application launch.</span></div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.window</span>=[[<span class=\"built_in\">UIWindow</span> alloc]initWithFrame:[[UIScreen mainScreen] bounds]];</div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.window</span><span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> grayColor]; </div><div class=\"line\"><span class=\"comment\">//contentMode</span></div><div class=\"line\"> <span class=\"built_in\">UIImageView</span> *iv=[[<span class=\"built_in\">UIImageView</span> alloc]initWithImage:image];</div><div class=\"line\"> iv<span class=\"variable\">.tag</span>=<span class=\"number\">10</span>;</div><div class=\"line\"> iv<span class=\"variable\">.contentMode</span>=UIViewContentModeScaleAspectFit;</div><div class=\"line\"> iv<span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> brownColor];</div><div class=\"line\"> iv<span class=\"variable\">.frame</span>=CGRectMake(<span class=\"number\">30</span>, <span class=\"number\">350</span>, <span class=\"number\">260</span>, <span class=\"number\">100</span>);</div><div class=\"line\"><span class=\"comment\">//Affine</span></div><div class=\"line\"> <span class=\"built_in\">UIButton</span> *press=[[<span class=\"built_in\">UIButton</span> alloc] initWithFrame:CGRectMake(<span class=\"number\">200</span>, <span class=\"number\">500</span>, <span class=\"number\">40</span>, <span class=\"number\">10</span>)];</div><div class=\"line\"> press<span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> yellowColor];</div><div class=\"line\"> press<span class=\"variable\">.titleLabel</span><span class=\"variable\">.text</span>=<span class=\"string\">@\"Press me\"</span>;</div><div class=\"line\"> [press addTarget:<span class=\"keyword\">self</span> action:<span class=\"keyword\">@selector</span>(change) forControlEvents:UIControlEventTouchUpInside];</div><div class=\"line\"> </div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> addSubview:iv];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> addSubview:press];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> makeKeyAndVisible];</div><div class=\"line\"> </div><div class=\"line\"> <span class=\"keyword\">return</span> <span class=\"literal\">YES</span>;</div><div class=\"line\">}</div><div class=\"line\"><span class=\"comment\">//控制『Controller』</span></div><div class=\"line\">-(<span class=\"keyword\">void</span>) change {</div><div class=\"line\"> [<span class=\"built_in\">UIView</span> beginAnimations:<span class=\"string\">@\"chang\"</span> context:<span class=\"literal\">nil</span>];</div><div class=\"line\"> [<span class=\"built_in\">UIView</span> setAnimationDuration:<span class=\"number\">1</span>];</div><div class=\"line\"> [<span class=\"built_in\">UIView</span> setAnimationCurve:UIViewAnimationCurveEaseInOut];</div><div class=\"line\"> </div><div class=\"line\"> <span class=\"built_in\">UIView</span> *view=[<span class=\"keyword\">self</span><span class=\"variable\">.window</span> viewWithTag:<span class=\"number\">101</span>]; <span class=\"comment\">//通过tag获取view</span></div><div class=\"line\"> view<span class=\"variable\">.transform</span>=CGAffineTransformRotate(view<span class=\"variable\">.transform</span>,M_PI/<span class=\"number\">4.0</span>);</div><div class=\"line\"> </div><div class=\"line\"> [<span class=\"built_in\">UIView</span> setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view cache:<span class=\"literal\">YES</span>];</div><div class=\"line\"> </div><div class=\"line\"> [<span class=\"built_in\">UIView</span> commitAnimations];</div><div class=\"line\"> </div><div class=\"line\"> </div><div class=\"line\">}</div></pre></td></tr></table></figure>\n\n<h3 id=\"完全手动编写ViewControl\">完全手动编写ViewControl</h3>\n<ul>\n<li>新建项目,修改xcode项目中deployment info中的信息,将『Main Interface』置成空,删除其对应的<strong><em>Main.Stroyboard</em></strong>,因为我们现在不使用storyboard。</li>\n<li>将deployment info中的Launch Screen File置成空,并删除其对应的文件<strong><em>LanuchScreen.xib</em></strong>,这里也不需要启动程序初始化界面。</li>\n<li>补充AppDelegate代码段</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"comment\">//@implementation AppDelegate</span></div><div class=\"line\">- (<span class=\"built_in\">BOOL</span>)application:(<span class=\"built_in\">UIApplication</span> *)application didFinishLaunchingWithOptions:(<span class=\"built_in\">NSDictionary</span> *)launchOptions {</div><div class=\"line\"><span class=\"comment\">// Override point for customization after application launch.</span></div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.window</span>=[[<span class=\"built_in\">UIWindow</span> alloc] initWithFrame:[UIScreen mainScreen]<span class=\"variable\">.bounds</span>];</div><div class=\"line\"> ViewController *rootcontroller=[[ViewController alloc]init];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> addSubview:rootcontroller<span class=\"variable\">.view</span>];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> makeKeyAndVisible];</div><div class=\"line\"> <span class=\"keyword\">return</span> <span class=\"literal\">YES</span>;</div><div class=\"line\">}</div></pre></td></tr></table></figure>\n\n<ul>\n<li>在ViewController类中手动添加视图代码,在视图控制器view被加载时调用。</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div><div class=\"line\">12</div><div class=\"line\">13</div><div class=\"line\">14</div><div class=\"line\">15</div><div class=\"line\">16</div><div class=\"line\">17</div><div class=\"line\">18</div><div class=\"line\">19</div><div class=\"line\">20</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"comment\">//@implementation ViewController</span></div><div class=\"line\"><span class=\"comment\">//视图『View』</span></div><div class=\"line\">- (<span class=\"keyword\">void</span>)viewDidLoad {</div><div class=\"line\"> [<span class=\"keyword\">super</span> viewDidLoad];</div><div class=\"line\"><span class=\"comment\">// Do any additional setup after loading the view, typically from a nib.</span></div><div class=\"line\"> <span class=\"built_in\">UILabel</span>* label=[[<span class=\"built_in\">UILabel</span> alloc]initWithFrame:CGRectMake(<span class=\"number\">50</span>, <span class=\"number\">200</span>, <span class=\"number\">300</span>, <span class=\"number\">20</span>)];</div><div class=\"line\"> label<span class=\"variable\">.text</span>=<span class=\"string\">@\"This ViewController init by code\"</span>;</div><div class=\"line\"> <span class=\"built_in\">UIButton</span>* button=[<span class=\"built_in\">UIButton</span> buttonWithType:UIButtonTypeSystem];</div><div class=\"line\"> button<span class=\"variable\">.frame</span>=CGRectMake(<span class=\"number\">100</span>, <span class=\"number\">400</span>, <span class=\"number\">40</span>, <span class=\"number\">20</span>);</div><div class=\"line\"> button<span class=\"variable\">.titleLabel</span><span class=\"variable\">.text</span>=<span class=\"string\">@\"Press me\"</span>;</div><div class=\"line\"> button<span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> blueColor];</div><div class=\"line\"> [button addTarget:<span class=\"keyword\">self</span> action:<span class=\"keyword\">@selector</span>(press) forControlEvents:UIControlEventTouchUpInside];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.view</span> addSubview:label];</div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.view</span> addSubview:button];</div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.view</span><span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> yellowColor];</div><div class=\"line\">}</div><div class=\"line\"><span class=\"comment\">//控制『Controller』</span></div><div class=\"line\">-(<span class=\"keyword\">void</span>)press {</div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.view</span><span class=\"variable\">.backgroundColor</span>=[<span class=\"built_in\">UIColor</span> greenColor];</div><div class=\"line\">}</div></pre></td></tr></table></figure>\n\n<h3 id=\"使用nib文件初始化viewController\">使用nib文件初始化viewController</h3>\n<ul>\n<li>新建项目,修改xcode项目中deployment info中的信息,将『Main Interface』置成空,删除其对应的<strong><em>Main.Stroyboard</em></strong>,因为我们现在不使用storyboard。</li>\n<li>将deployment info中的Launch Screen File置成空,并删除其对应的文件<strong><em>LanuchScreen.xib</em></strong>,这里也不需要启动程序初始化界面。</li>\n<li>创建试图控制器类『ViewController』以及其对应的xib文件『ViewController.xib』,并在属性界面『identify』中添加关联,将xib文件与ViewController关联起来,然后在『connections』属性中的view拉一根线指向xib文件的视图区域。</li>\n<li>现在就可以在『ViewController.xib』文件中添加视图空间,完成界面设计了。</li>\n<li>补充AppDelegate中的启动初始化代码,如下:</li>\n</ul>\n<figure class=\"highlight\"><table><tr><td class=\"gutter\"><pre><div class=\"line\">1</div><div class=\"line\">2</div><div class=\"line\">3</div><div class=\"line\">4</div><div class=\"line\">5</div><div class=\"line\">6</div><div class=\"line\">7</div><div class=\"line\">8</div><div class=\"line\">9</div><div class=\"line\">10</div><div class=\"line\">11</div><div class=\"line\">12</div><div class=\"line\">13</div></pre></td><td class=\"code\"><pre><div class=\"line\"><span class=\"comment\">//@implementation AppDelegate</span></div><div class=\"line\">- (<span class=\"built_in\">BOOL</span>)application:(<span class=\"built_in\">UIApplication</span> *)application didFinishLaunchingWithOptions:(<span class=\"built_in\">NSDictionary</span> *)launchOptions {</div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.window</span>=[[<span class=\"built_in\">UIWindow</span> alloc] initWithFrame:[UIScreen mainScreen]<span class=\"variable\">.bounds</span>];</div><div class=\"line\"> ViewController *rootcontroller=[[ViewController alloc]initWithNibName:<span class=\"string\">@\"ViewController\"</span> bundle:<span class=\"literal\">nil</span>];</div><div class=\"line\"> <span class=\"comment\">//------------*</span></div><div class=\"line\"> <span class=\"keyword\">self</span><span class=\"variable\">.window</span><span class=\"variable\">.rootViewController</span>=rootcontroller;</div><div class=\"line\"> <span class=\"comment\">//rootcontroller的view会被自动添加为self.window的subview,被会自动根据screen的值调整view画布大小</span></div><div class=\"line\"> <span class=\"comment\">//--上面这一段也可以用下面的表示</span></div><div class=\"line\"> <span class=\"comment\">//[self.window addSubview:rootcontroller.view];</span></div><div class=\"line\"> <span class=\"comment\">//------------*</span></div><div class=\"line\"> [<span class=\"keyword\">self</span><span class=\"variable\">.window</span> makeKeyAndVisible];</div><div class=\"line\"> <span class=\"keyword\">return</span> <span class=\"literal\">YES</span>;</div><div class=\"line\">}</div></pre></td></tr></table></figure>\n\n<ul>\n<li>在ViewController.m中完成完成控制代码,这个我们经常做,从控件拉一条剪头到ViewControler.m中,并实现,xcode自动完成UIControl与方法的绑定『-addTarget:action:forControlEvents:』。</li>\n</ul>\n<blockquote>\n<p>在使用nib文件时,启动时将自动从nib文件中加载并<strong>生产相应的视图代码段</strong>,供给viewController使用,而且我发现当通过nib文件初始化界面后一次,后面即使你删掉这个nib文件,视图依旧能正常加载并工作。</p>\n</blockquote>\n<h3 id=\"使用storyboard管理ViewController\">使用storyboard管理ViewController</h3>\n<p>现在开始学iOS的同学,估计一开始就是直接用storyboard,相当方便。连上面AppDelegate部分的代码都不需要写了,下面说一下要使用storyboard相比上面要设置哪些东西。 </p>\n<ul>\n<li>由于使用storyboard需要xcode自动去帮我们完成试图控器的加载,我们需要在『项目名』->『Deployment info』->『Main Interface』属性处设置你项目中创建的storyboard的名称。</li>\n<li>其次,在你的众多或者唯一的viewController『attributes inspector』属性中设置为『is initial View Contr』</li>\n</ul>\n","source":"_posts/View-Controller.md","raw":"title: View Controller\ndate: 2015-01-09 14:48:51\ntags: iOS\n---\n###ViewController的结构关系\n* ViewController中包含一个指向storyboard的指针, 一个项目中只有一个storyboard或者没有, 所有的其他viewController也都指向它.\n* viewController中包含一个UIview的指针, 它是这个viewCntroller的根视图, 被viewControl管理的其他视图都在它之上.\n* viewControl来负责实现它所管理的视图的响应方式, 这个实现了显示和控制的隔离.\n\n![viewController](http://i2.tietuku.com/aa8b64d36df89717.png)\n\n###ViewControl与windows的关系\n对下面的图片解释一下: \n\n* window从screen那里获取屏幕的显示信息,根据此初始化UIWindow frame大小.\n* UIWindow中包含有一个*rootViewController的指针, 我们让它指向我们的viewController, 这样我们viewControl中的根UIview会自动添加为UIWindow的subView, viewController中的内容就能显示在窗口中了.\n\n> A view controller is usually owned by a window or another view controller.If a view controller is owned by a window object, it acts as the window’s root view controller.The view controller’s root view is added as a subview of the window and resized to fill the window.If the view controller is owned by another view controller, then the parent view controller determines when and how the child view controller’s contents are displayed.\n\n<!--more-->\n![viewWindows](http://i2.tietuku.com/5def40f7afd0c98b.png)\n\n##演示4中不同的视图控制实现方式\n* 完全手动编写ViewControl\n* 不使用ViewController\n* 使用nib文件初始化viewController\n* 使用storyboard管理ViewController\n\n![viewController](/img/viewController.png)\n\n\n###不使用ViewController\n* 在AppDelegate中手动完成显示『View』和控制『Controller』\n\n```\n//@implementation AppDelegate\n//显示『View』\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n// Override point for customization after application launch.\n self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];\n self.window.backgroundColor=[UIColor grayColor]; \n//contentMode\n UIImageView *iv=[[UIImageView alloc]initWithImage:image];\n iv.tag=10;\n iv.contentMode=UIViewContentModeScaleAspectFit;\n iv.backgroundColor=[UIColor brownColor];\n iv.frame=CGRectMake(30, 350, 260, 100);\n//Affine\n UIButton *press=[[UIButton alloc] initWithFrame:CGRectMake(200, 500, 40, 10)];\n press.backgroundColor=[UIColor yellowColor];\n press.titleLabel.text=@\"Press me\";\n [press addTarget:self action:@selector(change) forControlEvents:UIControlEventTouchUpInside];\n \n [self.window addSubview:iv];\n [self.window addSubview:press];\n [self.window makeKeyAndVisible];\n \n return YES;\n}\n//控制『Controller』\n-(void) change {\n [UIView beginAnimations:@\"chang\" context:nil];\n [UIView setAnimationDuration:1];\n [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];\n \n UIView *view=[self.window viewWithTag:101]; //通过tag获取view\n view.transform=CGAffineTransformRotate(view.transform,M_PI/4.0);\n \n [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view cache:YES];\n \n [UIView commitAnimations];\n \n \n}\n```\n\n\n###完全手动编写ViewControl\n* 新建项目,修改xcode项目中deployment info中的信息,将『Main Interface』置成空,删除其对应的***Main.Stroyboard***,因为我们现在不使用storyboard。\n* 将deployment info中的Launch Screen File置成空,并删除其对应的文件***LanuchScreen.xib***,这里也不需要启动程序初始化界面。\n* 补充AppDelegate代码段\n\n```\n//@implementation AppDelegate\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n// Override point for customization after application launch.\n self.window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n ViewController *rootcontroller=[[ViewController alloc]init];\n [self.window addSubview:rootcontroller.view];\n [self.window makeKeyAndVisible];\n return YES;\n}\n```\n* 在ViewController类中手动添加视图代码,在视图控制器view被加载时调用。\n\n```\n//@implementation ViewController\n//视图『View』\n- (void)viewDidLoad {\n [super viewDidLoad];\n// Do any additional setup after loading the view, typically from a nib.\n UILabel* label=[[UILabel alloc]initWithFrame:CGRectMake(50, 200, 300, 20)];\n label.text=@\"This ViewController init by code\";\n UIButton* button=[UIButton buttonWithType:UIButtonTypeSystem];\n button.frame=CGRectMake(100, 400, 40, 20);\n button.titleLabel.text=@\"Press me\";\n button.backgroundColor=[UIColor blueColor];\n [button addTarget:self action:@selector(press) forControlEvents:UIControlEventTouchUpInside];\n [self.view addSubview:label];\n [self.view addSubview:button];\n self.view.backgroundColor=[UIColor yellowColor];\n}\n//控制『Controller』\n-(void)press {\n self.view.backgroundColor=[UIColor greenColor];\n}\n```\n\n\n###使用nib文件初始化viewController\n\n* 新建项目,修改xcode项目中deployment info中的信息,将『Main Interface』置成空,删除其对应的***Main.Stroyboard***,因为我们现在不使用storyboard。\n* 将deployment info中的Launch Screen File置成空,并删除其对应的文件***LanuchScreen.xib***,这里也不需要启动程序初始化界面。\n* 创建试图控制器类『ViewController』以及其对应的xib文件『ViewController.xib』,并在属性界面『identify』中添加关联,将xib文件与ViewController关联起来,然后在『connections』属性中的view拉一根线指向xib文件的视图区域。\n* 现在就可以在『ViewController.xib』文件中添加视图空间,完成界面设计了。\n* 补充AppDelegate中的启动初始化代码,如下:\n\n```\n//@implementation AppDelegate\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n self.window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n ViewController *rootcontroller=[[ViewController alloc]initWithNibName:@\"ViewController\" bundle:nil];\n //------------*\n self.window.rootViewController=rootcontroller;\n //rootcontroller的view会被自动添加为self.window的subview,被会自动根据screen的值调整view画布大小\n //--上面这一段也可以用下面的表示\n //[self.window addSubview:rootcontroller.view];\n //------------*\n [self.window makeKeyAndVisible];\n return YES;\n}\n```\n* 在ViewController.m中完成完成控制代码,这个我们经常做,从控件拉一条剪头到ViewControler.m中,并实现,xcode自动完成UIControl与方法的绑定『-addTarget:action:forControlEvents:』。\n\n\n>在使用nib文件时,启动时将自动从nib文件中加载并**生产相应的视图代码段**,供给viewController使用,而且我发现当通过nib文件初始化界面后一次,后面即使你删掉这个nib文件,视图依旧能正常加载并工作。\n\n###使用storyboard管理ViewController\n\n现在开始学iOS的同学,估计一开始就是直接用storyboard,相当方便。连上面AppDelegate部分的代码都不需要写了,下面说一下要使用storyboard相比上面要设置哪些东西。 \n\n* 由于使用storyboard需要xcode自动去帮我们完成试图控器的加载,我们需要在『项目名』->『Deployment info』->『Main Interface』属性处设置你项目中创建的storyboard的名称。\n* 其次,在你的众多或者唯一的viewController『attributes inspector』属性中设置为『is initial View Contr』\n\n\n","slug":"View-Controller","updated":1420898776000,"excerpt":"<h3 id=\"ViewController的结构关系\">ViewController的结构关系</h3>\n<ul>\n<li>ViewController中包含一个指向storyboard的指针, 一个项目中只有一个storyboard或者没有, 所有的其他viewController也都指向它.</li>\n<li>viewController中包含一个UIview的指针, 它是这个viewCntroller的根视图, 被viewControl管理的其他视图都在它之上.</li>\n<li>viewControl来负责实现它所管理的视图的响应方式, 这个实现了显示和控制的隔离.</li>\n</ul>\n<p><img src=\"http://i2.tietuku.com/aa8b64d36df89717.png\" alt=\"viewController\"></p>\n<h3 id=\"ViewControl与windows的关系\">ViewControl与windows的关系</h3>\n<p>对下面的图片解释一下: </p>\n<ul>\n<li>window从screen那里获取屏幕的显示信息,根据此初始化UIWindow frame大小.</li>\n<li>UIWindow中包含有一个*rootViewController的指针, 我们让它指向我们的viewController, 这样我们viewControl中的根UIview会自动添加为UIWindow的subView, viewController中的内容就能显示在窗口中了.</li>\n</ul>\n<blockquote>\n<p>A view controller is usually owned by a window or another view controller.If a view controller is owned by a window object, it acts as the window’s root view controller.The view controller’s root view is added as a subview of the window and resized to fill the window.If the view controller is owned by another view controller, then the parent view controller determines when and how the child view controller’s contents are displayed.</p>\n</blockquote>\n<p>","_id":"lrfd8eutvhzy4sgu","categories":[],"comments":true,"layout":"post","photos":[],"link":""}],"Tag":[{"name":"iOS","_id":"ic3pvv8l9xocagtc","posts":["rnxtgcox5h0sfv0o","lrfd8eutvhzy4sgu"]},{"name":"随笔","_id":"xxx4h2aj3rrqhdw3","posts":["odp6532ojzocj9z3"]}]}