iOS6文字居中问题

升级 Xcode 之后一直没有用过,今天给一个 label 写居中属性,发现以前的文字居中属性 UITextAlignment 已经不推荐使用。如图。 查看文档,原来在 iOS6 中已经有了新的属性 NSTextAlignment。 新属性增加了 Justified 和 Natural,于是好奇在 label 中尝试了一下 Natural 属性。报错。 提示 textAlignment 中不能使用 NSTextAlignmentNatural,当然,Justified 也不能用(= .=),也就是说,对于 label 标签中的文字,只能使用 center、left、right 三种属性,和 UITextAlignment 一样。ok,那么,什么情况下可以使用 Justified 和 Natural 呢? 搜了一下,没有发现问题的解答,不过从苹果的文档来看,Justified 和 Natural 可能是针对大段文字的,没有尝试,只是推测。(⊙o⊙)…

三月 5, 2013 · 1 分钟 · Zhiya

Javascript学习笔记--伪类和继承

Javascript 中继承可以分为两大类(非构造函数的继承和构造函数的继承),先从简单的说起,了解一下基于构造函数的继承。 Javascript 是一门基于原形的的语言,本身并没有类的概念,所以只能用模拟基于类的模式来实现类和类的继承。用构造函数来模拟类的概念。例如,我们定义一个 Person 类。 function Person(name, age) { this.name = name; this.age = age; } 上面就定义了一个 Person 类,包含 name 和 age 属性,下面来调用这个类。 var somebody = new Person("John", 18); alert(somebody.name); // John alert(somebody.age); // 18 OK,到这里就完成了一个简单的类的构造函数和调用方法。接下来,进一步了解类的继承,比如需要一个 Developer 的类,Developer 类需要继承 Person 类,此外还要包含工程师所会的语言(lang)和性别(sex)。还是用构造函数的方法来写这个类。 function Developer(name, age, sex, lang) { this.person = Person; this.person(name, age); delete this.person; this.sex = sex; this.lang = lang; } Developer 类就可以继承 Person 中的属性了,尝试调用一下。 var coder = new Developer("Bill", 22, "Male", "Javascript"); alert(coder.name); // Bill alert(coder.age); // 22 alert(coder.sex); // Male alert(coder.lang); // Javascript Developer 类中对于 Person 类的继承方法非常好理解,由于 Javascript 是基于函数的,而 Person 这个构造函数本质上也是函数,那么就可以用调用 Person 的方法继承它。看到这里可能有人会问,既然通过对构造函数的调用可以实现继承,那么为什么不直接使用 ...

一月 6, 2013 · 1 分钟 · Zhiya

nettop命令引发的一个小问题

在网上看到一篇帖子,是说 Mac OSX 10.7 中新加入了一个 nettop 命令,可以实时查看当前网络链接和数据流量。这是 nettop 命令的描述: The nettop program displays a list of sockets or routes. The counts for network structures are updated periodically. 于是在 Terminal 中尝试了一下。 尝鲜过后就再也没管。但是关闭 Terminal 大概一两分钟后,Mac 的风扇突然疯狂的转了起来。iStatMenu 上看达到了 5300rpm 左右。一般情况下,除非开游戏或者看 Flash,才有可能出现风扇飞转的情况,但是看了一下 dock 发现只开了 Chrome、iMessage 和 iTunes,也没有开 Apache 之类的服务。打开活动检测器,发现 CPU 四个核心都已经爆表,查看进程,有两个 nettop 进程几乎占用了所有 CPU 资源。 关闭 nettop 之后,CPU 占用率迅速下降,风扇飞转的情况也逐渐消失。 回想一下,可能是使用 nettop 命令后没有退出 nettop,而直接关闭 Terminal 造成的。经过尝试,发现问题确实出在没有正确退出 nettop 上。可能这是一个设计中没有考虑到的小 bug。 使用 man nettop 查看文档,文档说明中退出 nettop 应该采用 q,但没有说必须这样退出,而且很多时候,直接关闭 Terminal 确实是一些人的习惯,比如我:) ...

十二月 19, 2012 · 1 分钟 · Zhiya

browser.js-浏览器和操作系统识别

本人制作的浏览器识别 js。 将 browser-min.js 导入到 html 的头文件中,会返回全局变量 browser,其中 browser.browser 代表浏览器,browser.engine 代表浏览器内核,browser.version 代表浏览器版本,browser.system 代表操作系统。 未压缩版本下载:http://labs.simpleapples.com/browser/browser.js.zip(6.025kb) 已压缩版本下载:http://labs.simpleapples.com/browser/browser-min.js.zip(1.387kb) 演示地址:http://labs.simpleapples.com/browser github: http://github.com/simpleapples/browser.js

十二月 11, 2012 · 1 分钟 · Zhiya

一个关于Javascript的小测试

在 SAE 的微博上看到一个叫《你是否真的了解 javascript?》的小测试,虽然只有几段代码,但却很能说明一些容易忽视的问题。 先贴下原微博的图: 第一段代码执行结果:1 Javascript 没有提供块级作用域,所以 if 语句{}中的 a,在外部是可见的。 第二段代码执行结果:1 这里 function 的名字和变量的名字一样,但是 var b = function a () {}; 这样的用法中,a 是被忽略的。也就是 funciton a 并不影响变量 a 的值。 第三段代码执行结果:输出函数本身 应该说,大家不会这么写代码 = =!,但是呢,既然这么写了,那么首先 function a() {}; 执行后,a 的值就是 function 本身, var a; 执行后,实际上没有给 a 赋值,那么 a 还是本身,如果执行 var a = 1; 再输出 a 就是 1 了。 第四段代码执行结果:10 函数接收到参数的时候,是存入到 arguments 数组里的,而参数的定义 x,y,a 则分别指向 arguments 的 0,1,2 三个位置。 所以改 argument 自然输出 a 也会变。 第五段代码执行结果:window 使用 ...

十二月 3, 2012 · 1 分钟 · Zhiya