

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Waiwai is a legend</title>
	<atom:link href="http://blog.iwaiwai.org/waiwai/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iwaiwai.org/waiwai</link>
	<description>歪歪的后庭</description>
	<lastBuildDate>Sat, 04 Feb 2012 16:37:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>使用Xcode4.2发布支持armv6平台的应用</title>
		<link>http://blog.iwaiwai.org/waiwai/2012/02/04/%e4%bd%bf%e7%94%a8xcode4-2%e5%8f%91%e5%b8%83%e6%94%af%e6%8c%81armv6%e5%b9%b3%e5%8f%b0%e7%9a%84%e5%ba%94%e7%94%a8/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2012/02/04/%e4%bd%bf%e7%94%a8xcode4-2%e5%8f%91%e5%b8%83%e6%94%af%e6%8c%81armv6%e5%b9%b3%e5%8f%b0%e7%9a%84%e5%ba%94%e7%94%a8/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 16:37:20 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[apps]]></category>
		<category><![CDATA[bookcamp]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=232</guid>
		<description><![CDATA[苹果对xcode进行了升级到4.2 ，接着又对Application Loader的App应用自动validate做了升级，由于xcode4.2默认使用的架构是armv7，如果应用需要支持4.3以下的系统， 那么发布的时候苹果就会一个蛋疼的错误。 &#160; iPhone / iPod touch : application executable is missing a required architecture. Atleast one of the following architectures must be present: armv6 &#160; 解决的办法当然是让应用支持armv6。直接在Architectures中添加 armv6。正常情况下就可以解决这个问题了。没有必要做其它工作的。 如果使用的是Three20的框架。那么正常情况下会报一大堆的编译错误。链接错误。因为这个时候Thre20的编译使用的架构仍然是armv7，所以需要在xcode的左侧侧边栏一一打开添加armv6架构。 最近上传的时候苹果还会拼命告诉你Icon图标它找不到，即使你设置了icon.png的所有的配置文件，但是它仍然会非常固执的告诉你真的没有。之前的上传是正常的。所以我把icon压缩的选项关闭的了。这样才能够成功上传。]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:14px;">苹果对xcode进行了升级到4.2 ，接着又对Application Loader的App应用自动validate做了升级，由于xcode4.2默认使用的架构是armv7，如果应用需要支持4.3以下的系统， 那么发布的时候苹果就会一个蛋疼的错误。</span></p>
<p>&nbsp;</p>
<p><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; text-align: left; background-color: rgb(238, 238, 238); ">iPhone / iPod touch : application executable is missing a required architecture. Atleast one of the following architectures must be present: armv6</span></p>
<p>&nbsp;</p>
<p><span style="font-size:14px;">解决的办法当然是让应用支持armv6。直接在</span><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; text-align: left; ">Architectures中添加 armv6。正常情况下就可以解决这个问题了。没有必要做其它工作的。</span></p>
<p><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; text-align: left; ">如果使用的是Three20的框架。那么正常情况下会报一大堆的编译错误。链接错误。因为这个时候Thre20的编译使用的架构仍然是armv7，所以需要在xcode的左侧侧边栏一一打开添加armv6架构。</span></p>
<p><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; text-align: left; ">最近上传的时候苹果还会拼命告诉你Icon图标它找不到，即使你设置了icon.png的所有的配置文件，但是它仍然会非常固执的告诉你真的没有。之前的上传是正常的。所以我把icon压缩的选项关闭的了。这样才能够成功上传。</span></p>
<p><span style="font-size:14px;"><br />
	</span></p>
<p><span style="font-size: 14px;"><br />
	</span></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2012%2F02%2F04%2F%25e4%25bd%25bf%25e7%2594%25a8xcode4-2%25e5%258f%2591%25e5%25b8%2583%25e6%2594%25af%25e6%258c%2581armv6%25e5%25b9%25b3%25e5%258f%25b0%25e7%259a%2584%25e5%25ba%2594%25e7%2594%25a8%2F&amp;title=%E4%BD%BF%E7%94%A8Xcode4.2%E5%8F%91%E5%B8%83%E6%94%AF%E6%8C%81armv6%E5%B9%B3%E5%8F%B0%E7%9A%84%E5%BA%94%E7%94%A8" id="wpa2a_2"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2012/02/04/%e4%bd%bf%e7%94%a8xcode4-2%e5%8f%91%e5%b8%83%e6%94%af%e6%8c%81armv6%e5%b9%b3%e5%8f%b0%e7%9a%84%e5%ba%94%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSString的字符串反转</title>
		<link>http://blog.iwaiwai.org/waiwai/2012/01/09/nsstring%e7%9a%84%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%8f%8d%e8%bd%ac/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2012/01/09/nsstring%e7%9a%84%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%8f%8d%e8%bd%ac/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 10:12:30 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=229</guid>
		<description><![CDATA[这个是一个蛋疼的题目，当然蛋疼，当我给自己做了一个限定，正常在Obj-c中的操作都是NSString对象，如果不使用内置函数，那么要做算法，操作就是对象，正常人类的做法，当然应该使用一个NSMutableNString，用append去写。这样的话，你从前学的在C里面的算法一个屁都用不上，也可以交换两个前后两端的字符串，我心想都是一个但是其实那个索引的操作是不透明的，在一个正常的考试中，你也不会能够写一个东西去验证这个到底那个索引操作有多快。一个可控的方法，当然是还是用纯C来写。 &#160;&#160;&#160; &#160;&#160;&#160; NSString *test = &#34;this is a test&#34;; &#160;&#160;&#160; &#160;&#160;&#160; const char *p = [test cStringUsingEncoding:NSUTF8StringEncoding]; &#160;&#160;&#160; &#160;&#160;&#160; int len = strlen(test); &#160;&#160;&#160; &#160;&#160;&#160; char *s = (void*)malloc(len+1); &#160;&#160;&#160; &#160;&#160;&#160; memset(s, 0&#215;00, sizeof(len+1)); &#160;&#160;&#160;&#160;&#160;&#160;&#160; strcpy(s, test); &#160;&#160;&#160;&#160;&#160;&#160;&#160; for(char *end = s + strlen(s) &#8211; 1; ; end &#62; s ; &#8211;end , ++s){ [...]]]></description>
			<content:encoded><![CDATA[<p>这个是一个蛋疼的题目，当然蛋疼，当我给自己做了一个限定，正常在Obj-c中的操作都是NSString对象，如果不使用内置函数，那么要做算法，操作就是对象，正常人类的做法，当然应该使用一个NSMutableNString，用append去写。这样的话，你从前学的在C里面的算法一个屁都用不上，也可以交换两个前后两端的字符串，我心想都是一个但是其实那个索引的操作是不透明的，在一个正常的考试中，你也不会能够写一个东西去验证这个到底那个索引操作有多快。一个可控的方法，当然是还是用纯C来写。</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; NSString *test = &quot;this is a test&quot;;<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; const char *p = [test cStringUsingEncoding:NSUTF8StringEncoding];<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int len = strlen(test);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; char *s = (void*)malloc(len+1);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memset(s, 0&#215;00, sizeof(len+1));<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcpy(s, test);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(char *end = s + strlen(s) &#8211; 1; ; end &gt; s ; &#8211;end , ++s){<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *s ^= *end;<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *end ^= *s;<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *s ^= *end;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NSString *result = [NSString stringWithUTF8String:s];<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free(s);</p>
<p>
	stackoverflow上的有两端交互的方法。</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2012%2F01%2F09%2Fnsstring%25e7%259a%2584%25e5%25ad%2597%25e7%25ac%25a6%25e4%25b8%25b2%25e5%258f%258d%25e8%25bd%25ac%2F&amp;title=NSString%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8F%8D%E8%BD%AC" id="wpa2a_4"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2012/01/09/nsstring%e7%9a%84%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%8f%8d%e8%bd%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three20支持的资源地址</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/12/29/three20%e6%94%af%e6%8c%81%e7%9a%84%e8%b5%84%e6%ba%90%e5%9c%b0%e5%9d%80/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/12/29/three20%e6%94%af%e6%8c%81%e7%9a%84%e8%b5%84%e6%ba%90%e5%9c%b0%e5%9d%80/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:14:31 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=226</guid>
		<description><![CDATA[在Three20中支持两种短地址访问的方式。 1、bundle:// &#8212;&#8212;&#8212;&#8212; 访问Bundle的主要方式。一般的话资源文件都放置在main bundle下面。所以可以使用bundle://demo.jpeg访问图片。如果是在子bundle中。那么可以用 bundle://three20.bundle/demo.jpeg的方式访问。 2、document:// &#8212;&#8212;&#8212;&#8212; 用户文件夹。 &#160; 举一个例子，TTThumbView.thumbURL一般情况下传递一个http://图片地址。当然对于也可以把这些资源地址当成网络地址访问。所以传递一个document://demo.jgeg的地址也是没有问题。]]></description>
			<content:encoded><![CDATA[<p>在Three20中支持两种短地址访问的方式。</p>
<p>1、bundle:// &#8212;&#8212;&#8212;&#8212; 访问Bundle的主要方式。一般的话资源文件都放置在main bundle下面。所以可以使用bundle://demo.jpeg访问图片。如果是在子bundle中。那么可以用 bundle://three20.bundle/demo.jpeg的方式访问。</p>
<p>2、document:// &#8212;&#8212;&#8212;&#8212; 用户文件夹。</p>
<p>&nbsp;</p>
<p>举一个例子，TTThumbView.thumbURL一般情况下传递一个http://图片地址。当然对于也可以把这些资源地址当成网络地址访问。所以传递一个document://demo.jgeg的地址也是没有问题。</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F12%2F29%2Fthree20%25e6%2594%25af%25e6%258c%2581%25e7%259a%2584%25e8%25b5%2584%25e6%25ba%2590%25e5%259c%25b0%25e5%259d%2580%2F&amp;title=Three20%E6%94%AF%E6%8C%81%E7%9A%84%E8%B5%84%E6%BA%90%E5%9C%B0%E5%9D%80" id="wpa2a_6"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/12/29/three20%e6%94%af%e6%8c%81%e7%9a%84%e8%b5%84%e6%ba%90%e5%9c%b0%e5%9d%80/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TinyTypesetting for ios</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/12/26/tinytypesetting-for-ios/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/12/26/tinytypesetting-for-ios/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 02:39:22 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=219</guid>
		<description><![CDATA[TinyTypesetting for ios是由我编写的一个小型排版引擎，主要目标的实现中文的版式中的定制开发。 一、文本的呈现 在IOS中，如果要实现的一个文本的显示。通常我们会考虑使用UILabel。当然UILabel是做少量文本的显示(在这里，我并不讨论编辑的功能，如果我们要在程序中要对一个文本进行设配的的话，我们会使用SizeToFIt(UILabel未实现)这样的函数，有时候，我们只是想计算一个视图上一些文字视图的排布，为了节省内存，或者是lazy loading的需要，我们实际上并不想真的是去生成一个view。那么实际上在NSString（UIStringDrawing)提供这种计算文字在视图显示区域大小的函数。如： &#160; (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode 它在接受合适的参数之后，能够为我们提供视图占地面积大小。 二、图文的混排 实际上，我们并不是单单只是对文字进行排版，有时候，我们会在文中插入图片，当然这个版式实际上非常难看，但是我还是要演示一下，效果，因为它的确也是排版的一部分： ========================================示例============================================== 这是一个示例文字这也是一个示例文字 ========================================示例============================================== &#160; 在一个Flow流中处理的图片，或者是一个链接，或者是一个按钮，总而言之，它就是一个不可切割的一个单元，在排版中我们称为图元的东东，就是排版应该提供的。当然这种比较丑陋的排版，相信设计师都不会采用它，当然不排除有相当牛逼的设计师能够把这样的版面弄得好看（ps：如果你做出来了，请一定要告诉我）。常见的话，其实我们只有下面的这种排布方式。 &#160; ========================================示例============================================== 这是一个示例文字 这也是一个示例文字 ========================================示例============================================== 这个时候我们使用View的选择就少了一些，在不考虑第三方库的情况下，常规的做法的我们会使用UILabel，UIImageView，或者考虑UIWebview这样的重型机械。于是我们就纠结了。在使用UILable,UIImageView 的情况下，我们UI展现会非常固定，我们加多一个标签，咋办?普通青年会告诉PM，我们把代码拿下来重新编译一次上传。二逼青年会告诉PM，我们使用Webview当然没有这种问题。后一种处理方法实际非常内伤。想想在Sina iphone那个timeline吧（当然那个不是用webview实现的），那么实际上我们其实只是需要一个瑞士军刀，结果动用了坦克。 &#160; 三、混排的出现 实际上我们还有一些奇奇怪怪的需求会不断增加。比如，我们在文字流中加入小链接（可点链接）: &#160; &#160; ========================================示例============================================== 这是一个示例链接文字 这是一个示例链接文字 这是一个示例链接文字 这是一个示例链接文字 ========================================示例============================================== &#160; &#160; 有时候仅仅是一小段的文字。但是在排版就非常头疼了。正常的青年当然在这个时候会选择three20的styledview。二逼青年仍然会说我们用Webview（对他们来说，这是一个神器)。神奇的青年这个时候会说我们考虑不支持3.2，使用CoreText。 &#160; 四、排版引擎的效果 Webkit在iPhone中的表现相当出色。处理普通的需求绰绰有余 &#160; ========================================示例============================================== ========================================示例============================================== Core Text的效果也是相当的不错。 ========================================示例============================================== ========================================示例============================================== &#160; TinyTypesetting for ios [...]]]></description>
			<content:encoded><![CDATA[<p>TinyTypesetting for ios是由我编写的一个小型排版引擎，主要目标的实现中文的版式中的定制开发。</p>
<p>一、文本的呈现</p>
<p>在IOS中，如果要实现的一个文本的显示。通常我们会考虑使用UILabel。当然UILabel是做少量文本的显示(在这里，我并不讨论编辑的功能，如果我们要在程序中要对一个文本进行设配的的话，我们会使用SizeToFIt(UILabel未实现)这样的函数，有时候，我们只是想计算一个视图上一些文字视图的排布，为了节省内存，或者是lazy loading的需要，我们实际上并不想真的是去生成一个view。那么实际上在NSString（UIStringDrawing)提供这种计算文字在视图显示区域大小的函数。如：</p>
<p>&nbsp;</p>
<p class="p1">(<a href="file:///Developer-3.2.5/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_2.iOSLibrary.docset/Contents/Resources/Documents/documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html#//apple_ref/doc/c_ref/CGSize"><span class="s1">CGSize</span></a>)sizeWithFont:(<a href="file:///Developer-3.2.5/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_2.iOSLibrary.docset/Contents/Resources/Documents/documentation/UIKit/Reference/UIFont_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UIFont"><span class="s1">UIFont</span></a> *)<span class="s2">font</span> forWidth:(CGFloat)<span class="s2">width</span> lineBreakMode:(<span class="s1">UILineBreakMode</span>)<span class="s2">lineBreakMode</span></p>
<p class="p1">它在接受合适的参数之后，能够为我们提供视图占地面积大小。</p>
<p class="p1">二、图文的混排</p>
<p class="p1">实际上，我们并不是单单只是对文字进行排版，有时候，我们会在文中插入图片，当然这个版式实际上非常难看，但是我还是要演示一下，效果，因为它的确也是排版的一部分：</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">这是一个示例文字<img alt="" height="165" src="http://blog.iwaiwai.org/wp-content/uploads/4e9af385d7234a70cb8a726bec110a35f8d41d177273-cUjk29_fw554.jpeg" width="165" />这也是一个示例文字</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">&nbsp;</p>
<p class="p1">在一个Flow流中处理的图片，或者是一个链接，或者是一个按钮，总而言之，它就是一个不可切割的一个单元，在排版中我们称为图元的东东，就是排版应该提供的。当然这种比较丑陋的排版，相信设计师都不会采用它，当然不排除有相当牛逼的设计师能够把这样的版面弄得好看（ps：如果你做出来了，请一定要告诉我）。常见的话，其实我们只有下面的这种排布方式。</p>
<p class="p1">&nbsp;</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">这是一个示例文字</p>
<p class="p1"><img alt="" height="165" src="http://blog.iwaiwai.org/wp-content/uploads/4e9af385d7234a70cb8a726bec110a35f8d41d177273-cUjk29_fw554.jpeg" width="165" /></p>
<p class="p1">这也是一个示例文字</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">这个时候我们使用View的选择就少了一些，在不考虑第三方库的情况下，常规的做法的我们会使用UILabel，UIImageView，或者考虑UIWebview这样的重型机械。于是我们就纠结了。在使用UILable,UIImageView 的情况下，我们UI展现会非常固定，我们加多一个标签，咋办?普通青年会告诉PM，我们把代码拿下来重新编译一次上传。二逼青年会告诉PM，我们使用Webview当然没有这种问题。后一种处理方法实际非常内伤。想想在Sina iphone那个timeline吧（当然那个不是用webview实现的），那么实际上我们其实只是需要一个瑞士军刀，结果动用了坦克。</p>
<p class="p1">&nbsp;</p>
<p class="p1">三、混排的出现</p>
<p class="p1">实际上我们还有一些奇奇怪怪的需求会不断增加。比如，我们在文字流中加入小链接（可点链接）:</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">这是一个示例<span style="color:#00f;">链接</span>文字</p>
<p class="p1">这是一个示例<span style="color: rgb(0, 0, 255); ">链接</span>文字</p>
<p class="p1">这是一个示例<span style="color: rgb(0, 0, 255); ">链接</span>文字</p>
<p class="p1">这是一个示例<span style="color: rgb(0, 0, 255); ">链接</span>文字</p>
<p class="p1">========================================示例==============================================</p>
<p>&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">有时候仅仅是一小段的文字。但是在排版就非常头疼了。正常的青年当然在这个时候会选择three20的styledview。二逼青年仍然会说我们用Webview（对他们来说，这是一个神器)。神奇的青年这个时候会说我们考虑不支持3.2，使用CoreText。</p>
<p class="p1">&nbsp;</p>
<p class="p1">四、排版引擎的效果</p>
<p class="p1">Webkit在iPhone中的表现相当出色。处理普通的需求绰绰有余</p>
<p class="p1">&nbsp;</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1"><img alt="" height="170" src="http://blog.iwaiwai.org/wp-content/uploads/Screen Shot 2011-12-27 at 12_36_50 AM.png" width="285" /></p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">Core Text的效果也是相当的不错。</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1"><img alt="" src="http://blog.iwaiwai.org/wp-content/uploads/Screen Shot 2011-12-27 at 12_39_26 AM.png" /></p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">&nbsp;</p>
<p class="p1">TinyTypesetting for ios 现阶段的效果如果下。</p>
<p class="p1">&nbsp;</p>
<p class="p1">========================================示例==============================================</p>
<p class="p1"><img alt="" src="http://blog.iwaiwai.org/wp-content/uploads/Screen Shot 2011-12-27 at 1_29_10 AM.png" /></p>
<p class="p1">========================================示例==============================================</p>
<p class="p1">&nbsp;</p>
<p class="p1">五、复杂排版的困惑</p>
<p class="p1">做复杂一点的图文排版的时候一定对于一个ios开发者来说，其实是挺困扰的问题，特别是中文排版这一块。举一个简单的例子，在中文的印刷制品中，我们会要求右侧对齐，我们讲究对称美，看我上面演示的示例，可以知道，iPhone的Webview在这一块可是不够亲近中文排版，在5.0之后才正式支持这一特性。Core Text表现也非常难良好。现在我们再来谈一下更普遍的需求。PM某天发现原来，在移动设备上，使用Scroller修饰器的让用户焦点无法像PC一样快速确定，毕竟用户处于一个移动的环境中，那么做一个提议吧：我们弄个分页行不（少量文本，7k-1w）。于是ios程序员开始抓破脑袋，最后决定，用UIWebview-UIScrollView的pagingEnable，很快又神奇的发现，这个原来有些文本刚好被切割。于是使用webkit的程序员开始使用不同的解决办法。当然Css3的分栏特性是一个不错的选择，比较大的一个障碍可能是在iPad排版时候的图片的跨栏，但是这一切我们都可以通过js解决。Core Text的当然不在话下。</p>
<p class="p1">PM们的要求可不这么简单，他们能够想到的，就是还有，竖着分页，Webview在这一方面马上显得力不从心了（也是可以做的）；舍弃卷轴效果，弄个更炫的效果。JS的效率就在这些效果的切换中被秒杀了，部分效果是还是可以做得出来的，但是经常性的多个webview的切换让代码看起来非常hackous。</p>
<p class="p1">以上Core Text和我编写的TinyTypesetting皆可以做到。</p>
<p class="p1">&nbsp;</p>
<p class="p1">六、长文本</p>
<p class="p1">对付长文本的做法，当然是切割，切割的粒度在正常情况下，我们会使用段落作为粒度。比如一个30w字的文字应该在webview里面怎么展现呢。webview越来越无法满足我们的不断增长的需求（某些情况我们会选择比较不优美的方法）。Core &nbsp;Text的编码复杂，当然作为一个定制的排版框架灵活度还是相当高。Core Text在run时候会告诉一个CTFrameRef。可以让我们知道多少文本在空间内占据大小。</p>
<p class="p1">&nbsp;</p>
<p class="p1">七、TinyTypesetting for ios</p>
<p class="p1">TinyTypesetting for ios 完全是一个定制开发排版引擎。</p>
<p class="p1">1，对少量文本的排版来说， 它是小型容器，可以快速的对多样式的文本进行显示，多种定制控件的加入，所以控件的回调都可以直接控制。文本区域可知，它可以告诉哪一行，哪一个字在什么位置。</p>
<p class="p1">2，内置的justified让中文豆腐块更加清晰。终于可以去掉坑坑洼洼的不平。</p>
<p class="p1">3，支持部分html标签</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p class="p1">&nbsp;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F12%2F26%2Ftinytypesetting-for-ios%2F&amp;title=TinyTypesetting%20for%20ios" id="wpa2a_8"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/12/26/tinytypesetting-for-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>当苹果审核遇到 invalid binary 的解决办法</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/11/15/%e5%bd%93%e8%8b%b9%e6%9e%9c%e5%ae%a1%e6%a0%b8%e9%81%87%e5%88%b0-invalid-binary-%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/11/15/%e5%bd%93%e8%8b%b9%e6%9e%9c%e5%ae%a1%e6%a0%b8%e9%81%87%e5%88%b0-invalid-binary-%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 10:00:13 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=205</guid>
		<description><![CDATA[上传碰到invalid binary，网络上提供很多方法。但是其实最重要的方法就是查看email。还是写下几点要注意的 1，上传Icon资源文件是否正确 2，Entitlements.pllist文件是否正确 3，上传binary中有私有API 最后一点其实最重要的，但是包括stackoverflow在内的网站都告诉你可能是Icon错误。这个时候要去查看email。苹果并不会在itunesconnect中给你答案。]]></description>
			<content:encoded><![CDATA[<p>上传碰到invalid binary，网络上提供很多方法。但是其实最重要的方法就是查看email。还是写下几点要注意的</p>
<p>1，上传Icon资源文件是否正确</p>
<p>2，Entitlements.pllist文件是否正确</p>
<p>3，上传binary中有私有API</p>
<p>最后一点其实最重要的，但是包括stackoverflow在内的网站都告诉你可能是Icon错误。这个时候要去查看email。苹果并不会在itunesconnect中给你答案。</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F11%2F15%2F%25e5%25bd%2593%25e8%258b%25b9%25e6%259e%259c%25e5%25ae%25a1%25e6%25a0%25b8%25e9%2581%2587%25e5%2588%25b0-invalid-binary-%25e7%259a%2584%25e8%25a7%25a3%25e5%2586%25b3%25e5%258a%259e%25e6%25b3%2595%2F&amp;title=%E5%BD%93%E8%8B%B9%E6%9E%9C%E5%AE%A1%E6%A0%B8%E9%81%87%E5%88%B0%20invalid%20binary%20%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" id="wpa2a_10"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/11/15/%e5%bd%93%e8%8b%b9%e6%9e%9c%e5%ae%a1%e6%a0%b8%e9%81%87%e5%88%b0-invalid-binary-%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何发布破解的应用</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/11/14/%e5%a6%82%e4%bd%95%e5%8f%91%e5%b8%83%e7%a0%b4%e8%a7%a3%e7%9a%84%e5%ba%94%e7%94%a8/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/11/14/%e5%a6%82%e4%bd%95%e5%8f%91%e5%b8%83%e7%a0%b4%e8%a7%a3%e7%9a%84%e5%ba%94%e7%94%a8/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 02:34:23 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=194</guid>
		<description><![CDATA[1，找到以下路径&#160;/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS(version number).sdk/SDKSettings.plist 。修改文件中的CODE_SIGNING_REQUIRED的值为NO。跳过使用code provision。（注明version number 为sdk的版本号码) 2，xcode中的code signing identity不使用任何的code signing。 3，下载ldid可执行文件，放在/usr/bin/目录下。下载链接 4，复制一份Release配置，命名为Cydia。 5， xcode中的target 添加run script 。脚本如下 &#160; &#160; if [ ${CONFIGURATION}=&#39;Cydia&#39; ]; then echo ${TARGET_BUILD_DIR}/${TARGET_NAME}.app /usr/bin/ldid -S ${TARGET_BUILD_DIR}/${TARGET_NAME}.app/${TARGET_NAME} fi &#160;]]></description>
			<content:encoded><![CDATA[<p>1，找到以下路径&nbsp;/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS(version number).sdk/SDKSettings.plist 。修改文件中的CODE_SIGNING_REQUIRED的值为NO。跳过使用code provision。（注明version number 为sdk的版本号码)</p>
<p>2，xcode中的code signing identity不使用任何的code signing。</p>
<p>3，下载ldid可执行文件，放在/usr/bin/目录下。<a href="http://blog.iwaiwai.org/wp-content/uploads/ldid">下载链接</a></p>
<p>4，复制一份Release配置，命名为Cydia。</p>
<p>5， xcode中的target 添加run script 。脚本如下</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>if [ ${CONFIGURATION}=&#39;Cydia&#39; ]; then</p>
<p>echo ${TARGET_BUILD_DIR}/${TARGET_NAME}.app</p>
<p>/usr/bin/ldid -S ${TARGET_BUILD_DIR}/${TARGET_NAME}.app/${TARGET_NAME}</p>
<p>fi</p>
<p>&nbsp;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F11%2F14%2F%25e5%25a6%2582%25e4%25bd%2595%25e5%258f%2591%25e5%25b8%2583%25e7%25a0%25b4%25e8%25a7%25a3%25e7%259a%2584%25e5%25ba%2594%25e7%2594%25a8%2F&amp;title=%E5%A6%82%E4%BD%95%E5%8F%91%E5%B8%83%E7%A0%B4%E8%A7%A3%E7%9A%84%E5%BA%94%E7%94%A8" id="wpa2a_12"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/11/14/%e5%a6%82%e4%bd%95%e5%8f%91%e5%b8%83%e7%a0%b4%e8%a7%a3%e7%9a%84%e5%ba%94%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发布读书工具类应用bookcamp</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/08/29/%e5%8f%91%e5%b8%83%e8%af%bb%e4%b9%a6%e5%b7%a5%e5%85%b7%e7%b1%bb%e5%ba%94%e7%94%a8bookcamp/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/08/29/%e5%8f%91%e5%b8%83%e8%af%bb%e4%b9%a6%e5%b7%a5%e5%85%b7%e7%b1%bb%e5%ba%94%e7%94%a8bookcamp/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 01:37:43 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[bookcamp]]></category>
		<category><![CDATA[bookcamp three20 iphone]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=165</guid>
		<description><![CDATA[Bookcamp是由linwaiwai编写的一个书籍工具类的&#8220;小清新&#8221;iphone应用。能够方便的查看书籍的线上信息。帮助文青挖掘优秀书籍。该应用现提供内测版本。希望广大文青会稀饭这个。安装要求：jailbreak，version 3.2 or above。希望大家给我提出你的宝贵意见。 Lastest: 附上网盘下载链接：http://vdisk.weibo.com/s/xhTQ update 20100806: 附上网盘下载链接：http://vdisk.weibo.com/s/vdv_/1312366483 update 20100810: 1.fix some ui 2.add the comment&#160;animation 附上网盘下载链接：http://vdisk.weibo.com/s/vYPe update 20100818: 1.modify the style of root 2.add simple load-balance of api&#160; 3.add more btn to the like module.&#160; 4.draw the shadow of book cover .&#160; 附上网盘下载链接：http://vdisk.weibo.com/s/xhTQ &#160;]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span"><span><font size="4">Bookcamp是由linwaiwai编写的一个书籍工具类的&ldquo;小清新&rdquo;iphone应用。能够方便的查看书籍的线上信息。帮助文青挖掘优秀书籍。该<span>应用</span>现提供内测版本。希望广大文青会稀饭这个。<span>安装</span>要求：jailbreak，version 3.2 or above。希望大家给我提出你的宝贵意见。</font></span></p>
<p>	<span style="color:#f00"><b>Lastest:</b></span></p>
<p>	<span><font size="4">附上网盘<span>下载</span>链接：<a href="http://vdisk.weibo.com/s/xhTQ" id="url_1" target="_blank">http://vdisk.weibo.com/s/xhTQ</a></font></span></p>
<p>
	<span style="color:#f00"><b>update 20100806:</b></span></p>
<p>	<span><font size="4">附上网盘下载链接：<a href="http://vdisk.weibo.com/s/vdv_/1312366483" id="url_2" target="_blank">http://vdisk.weibo.com/s/vdv_/1312366483</a></font></span></p>
<p>	<span style="color:#f00"><b>update 20100810:</b></span><br />
	1.fix some ui<br />
	2.add the comment&nbsp;<span>animation</span><br />
	<font size="4"><span>附上网盘下载链接：<a href="http://vdisk.weibo.com/s/vYPe" id="url_3" target="_blank">http://vdisk.weibo.com/s/vYPe</a></span></font></p>
<p>	<span style="color:#f00"><b>update 20100818:</b></span><br />
	<font size="2"><font face="arial, helvetica, sans-serif "><span>1.modify the style of root</span></font></font><br />
	<font size="2"><font face="arial, helvetica, sans-serif "><span>2.add simple load-balance of api&nbsp;</span></font></font><br />
	<font size="2"><font face="arial, helvetica, sans-serif "><span>3.add more btn to the like module.&nbsp;</span></font></font><br />
	<font size="2"><font face="arial, helvetica, sans-serif "><span>4.draw the shadow of book cover .&nbsp;</span></font></font><br />
	<font size="4"><span>附上网盘下载链接：<a href="http://vdisk.weibo.com/s/xhTQ" id="url_4" target="_blank">http://vdisk.weibo.com/s/xhTQ</a></span></font></span></p>
<p>&nbsp;</p>
<p><img alt="" height="480" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/1.png" width="320" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/2.PNG" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/3.png" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/4.png" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/5.png" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/6.png" /></p>
<p><img alt="" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/7.png" /></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F08%2F29%2F%25e5%258f%2591%25e5%25b8%2583%25e8%25af%25bb%25e4%25b9%25a6%25e5%25b7%25a5%25e5%2585%25b7%25e7%25b1%25bb%25e5%25ba%2594%25e7%2594%25a8bookcamp%2F&amp;title=%E5%8F%91%E5%B8%83%E8%AF%BB%E4%B9%A6%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%BA%94%E7%94%A8bookcamp" id="wpa2a_14"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/08/29/%e5%8f%91%e5%b8%83%e8%af%bb%e4%b9%a6%e5%b7%a5%e5%85%b7%e7%b1%bb%e5%ba%94%e7%94%a8bookcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>how to use TTAreaStyle to create label style with icon</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/08/29/how-to-use-ttareastyle-to-create-label-style-with-icon/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/08/29/how-to-use-ttareastyle-to-create-label-style-with-icon/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 15:58:57 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[three20 TTAreaStyle]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=151</guid>
		<description><![CDATA[&#160; TTAreaStyle is a utility style class depend on three20.(please follow this link&#160;ttareastyleforthree20&#160;) It enhances the style of three20 for it could create an independent rect for other styles drawn on it. You can create some more complex style for TTView .Such as , a label with a icon in the front of it or [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div>
<p><font face="arial, helvetica, sans-serif" size="3"><span style="font-size: 16px"><span style="font-family: arial, helvetica, sans-serif"><span class="Apple-style-span">TTAreaStyle is a utility style class depend on three20.(please follow this link&nbsp;</span><span class="Apple-style-span"><a href="http://code.google.com/p/ttareastyleforthree20/">ttareastyleforthree20</a>&nbsp;</span><span class="Apple-style-span">) It enhances the style of three20 for it could create an independent rect for other styles drawn on it. You can create some more complex style for TTView .Such as , a label with a icon in the front of it or a view with separated segments with different style. for example ,look at the imgs showed below.</span></span></span></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p style="text-align: center"><font face="arial, helvetica, sans-serif" size="3"><img alt="" height="49" src="http://blog.iwaiwai.org/waiwai/wp-content/uploads/DFD9C66C-2E14-4772-8DDF-211B679E4D45.jpg" style="cursor: default" width="162" /></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><span style="font-size: 16px">usually , we may be adopt the method &nbsp;creating a view with a UIImageView and a Label added to it . when there is a single exception ， for saving time ,we feel free to use it . Honestly and personally , I have to say , it is a ugly method .I was thinking , is there any cheap way to implement it . The style of Three20 make it achievable. All you want to do just is&nbsp;</span><span class="Apple-style-span" style="font-size: 16px">appending</span><span style="font-size: 16px">&nbsp;a style to a view inherited from TTView. Here , I used TTLable.</span></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<pre><span class="pun">-</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TTLabel</span><span class="pun">*)</span><span class="pln">authorLabel </span><span class="pun">{</span>
<span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">_authorLabel</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="pln">_authorLabel </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[[</span><span class="typ">TTLabel</span><span class="pln"> alloc</span><span class="pun">]</span><span class="pln"> initWithFrame</span><span class="pun">:</span><span class="typ">CGRectMake</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">width </span><span class="pun">-</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="typ">BookSummaryViewMargin</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)];</span>
<span class="pln">_authorLabel</span><span class="pun">.</span><span class="pln">style </span><span class="pun">=</span><span class="pln"> TTSTYLE</span><span class="pun">(</span><span class="pln">bookSummaryAuthorStyle</span><span class="pun">);</span>
<span class="pln">_authorLabel</span><span class="pun">.</span><span class="pln">backgroundColor </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="typ">UIColor</span><span class="pln"> clearColor</span><span class="pun">];</span>
<span class="pun">[</span><span class="kwd">self</span><span class="pln"> addSubview</span><span class="pun">:</span><span class="pln">_authorLabel</span><span class="pun">];</span>
<span class="pun">}</span>
<span class="kwd">return</span><span class="pln"> _authorLabel</span><span class="pun">;</span>
<span class="pun">}</span></pre>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><span style="font-size: 16px"><span style="font-family: arial, helvetica, sans-serif"><br />
		</span></span></font></p>
<p><font face="arial, helvetica, sans-serif" size="3">In the Global stylesheet &nbsp;, adding this,</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<pre><span class="pun">-(</span><span class="typ">TTStyle</span><span class="pun">*)</span><span class="pln"> bookSummaryAuthorStyle</span><span class="pun">{</span>
<span class="typ">CGFloat</span><span class="pln"> timeIconWidth </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pun">;</span>
<span class="typ">CGFloat</span><span class="pln"> timeIconHeight </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pun">;</span>
<span class="kwd">return</span><span class="pln">
</span><span class="pun">[</span><span class="typ">TTAreaStyle</span><span class="pln"> styleWithBlock</span><span class="pun">:^(</span><span class="typ">CGRect</span><span class="pln"> rect </span><span class="pun">,</span><span class="pln">id data</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="typ">CGRectMake</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="typ">CGRectGetHeight</span><span class="pun">(</span><span class="pln">rect</span><span class="pun">)</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="pun">[[</span><span class="pln">data objectAtIndex</span><span class="pun">:</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> floatValue</span><span class="pun">])</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">,</span><span class="pln"> </span><span class="lit">12</span><span class="pun">);</span>
<span class="pun">}</span><span class="pln">
data</span><span class="pun">:[</span><span class="typ">NSArray</span><span class="pln"> arrayWithObjects</span><span class="pun">:[</span><span class="typ">NSNumber</span><span class="pln"> numberWithFloat</span><span class="pun">:</span><span class="pln">timeIconWidth</span><span class="pun">],</span>
<span class="pun">[</span><span class="typ">NSNumber</span><span class="pln"> numberWithFloat</span><span class="pun">:</span><span class="pln">timeIconHeight</span><span class="pun">],</span><span class="kwd">nil</span><span class="pun">]</span>
<span class="pln">style</span><span class="pun">:</span>
<span class="pun">[</span><span class="typ">TTImageStyle</span><span class="pln"> styleWithImageURL</span><span class="pun">:@</span><span class="str">&quot;bundle://time.png&quot;</span><span class="pln"> </span><span class="kwd">next</span><span class="pun">:</span><span class="kwd">nil</span><span class="pun">]</span>
<span class="kwd">next</span><span class="pun">:</span>
<span class="pun">[</span><span class="typ">TTBoxStyle</span><span class="pln"> styleWithPadding</span><span class="pun">:</span><span class="typ">UIEdgeInsetsMake</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">20</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">next</span><span class="pun">:</span>
<span class="pun">[</span><span class="typ">TTTextStyle</span><span class="pln"> styleWithFont</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="typ">UIFont</span><span class="pln"> systemFontOfSize</span><span class="pun">:</span><span class="lit">14</span><span class="pun">]</span><span class="pln">
color</span><span class="pun">:</span><span class="pln"> RGBCOLOR</span><span class="pun">(</span><span class="lit">128</span><span class="pun">,</span><span class="lit">128</span><span class="pun">,</span><span class="lit">128</span><span class="pun">)</span>
<span class="pln">minimumFontSize</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">shadowColor</span><span class="pun">:</span><span class="pln"> RGBCOLOR</span><span class="pun">(</span><span class="lit">171</span><span class="pun">,</span><span class="lit">171</span><span class="pun">,</span><span class="lit">171</span><span class="pun">)</span>
<span class="pln">shadowOffset</span><span class="pun">:</span><span class="pln"> TTSTYLEVAR</span><span class="pun">(</span><span class="pln">photoCaptionTextShadowOffset</span><span class="pun">)</span>
<span class="pln">textAlignment</span><span class="pun">:</span><span class="pln"> </span><span class="typ">UITextAlignmentLeft</span>
<span class="pln">verticalAlignment</span><span class="pun">:</span><span class="pln"> </span><span class="typ">UIControlContentVerticalAlignmentCenter</span>
<span class="pln">lineBreakMode</span><span class="pun">:</span><span class="pln"> </span><span class="typ">UILineBreakModeCharacterWrap</span>
<span class="pln">numberOfLines</span><span class="pun">:</span><span class="pln"> </span><span class="lit">6</span>
<span class="kwd">next</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">nil</span><span class="pun">]]];</span>
<span class="pun">}</span></pre>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><font face="arial, helvetica, sans-serif" size="3">With TTAreaStyle , &nbsp;I creat a independent area which you could draw anything you like . Here , i added&nbsp;</font></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<pre><span class="pun">[</span><span class="typ">TTImageStyle</span><span class="pln"> styleWithImageURL</span><span class="pun">:@</span><span class="str">&quot;bundle://time.png&quot;</span><span class="pln"> </span><span class="kwd">next</span><span class="pun">:</span><span class="kwd">nil</span><span class="pun">]</span></pre>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><span style="font-size: 16px">And then , shrinked &nbsp;the origin draw area &nbsp;by using&nbsp;</span></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<pre><span class="pun">[</span><span class="typ">TTBoxStyle</span><span class="pln"> styleWithPadding</span><span class="pun">:</span><span class="typ">UIEdgeInsetsMake</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">20</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">next</span><span class="pun">:</span></pre>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><span style="font-size: 16px">It&#039;s worth nothing that &nbsp;the param rect in the block wil let you know the size of TTLabel which other style don&#039;t offer. It &#039;s a amazing characteristic that help you calculate the position of &nbsp;elements in the independent area . Off course . do nesting if necessary.</span></font></p>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
<pre><span class="pun">^(</span><span class="typ">CGRect</span><span class="pln"> rect </span><span class="pun">,</span><span class="pln">id data</span><span class="pun">){</span><span class="pln"> }</span></pre>
<p><font face="arial, helvetica, sans-serif" size="3"><br />
		</font></p>
</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F08%2F29%2Fhow-to-use-ttareastyle-to-create-label-style-with-icon%2F&amp;title=how%20to%20use%20TTAreaStyle%20to%20create%20label%20style%20with%20icon" id="wpa2a_16"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/08/29/how-to-use-ttareastyle-to-create-label-style-with-icon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>how to implement a slider switch (with some three20)</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/07/14/how-to-implement-a-slider-switch-with-some-three20/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/07/14/how-to-implement-a-slider-switch-with-some-three20/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 15:26:02 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=132</guid>
		<description><![CDATA[123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899#define SliderWidth 116 #define SliderHeight 28 -------------------ScreenCapture.h------------------- #import @interface ScreenCapture : NSObject &#123; &#125; +&#40;ScreenCapture*&#41;capture; - &#40;UIImage *&#41;captureView:&#40;UIView *&#41;view; @end -------------------ScreenCapture.m------------------- #import &#34;ScreenCapture.h&#34; @implementation ScreenCapture +&#40;ScreenCapture*&#41;capture&#123; &#160; &#160; return &#91;&#91;&#91;ScreenCapture alloc&#93; init&#93; autorelease&#93;; &#125; - &#40;UIImage *&#41;captureView:&#40;UIView *&#41;view &#123; &#160; &#160; &#160; CGRect screenRect = view.frame; &#160; &#160; UIGraphicsBeginImageContext&#40;screenRect.size&#41;; &#160; &#160; CGContextRef ctx = UIGraphicsGetCurrentContext&#40;&#41;; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:2000px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#define SliderWidth 116</span><br />
<span style="color: #339933;">#define SliderHeight 28</span><br />
<br />
<span style="color: #339933;">-------------------</span>ScreenCapture.<span style="color: #202020;">h</span><span style="color: #339933;">-------------------</span><br />
<br />
<span style="color: #339933;">#import </span><br />
@interface ScreenCapture <span style="color: #339933;">:</span> NSObject <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>ScreenCapture<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>capture<span style="color: #339933;">;</span><br />
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>UIImage <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>captureView<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>view<span style="color: #339933;">;</span><br />
@end<br />
<br />
<br />
<span style="color: #339933;">-------------------</span>ScreenCapture.<span style="color: #202020;">m</span><span style="color: #339933;">-------------------</span><br />
<span style="color: #339933;">#import &quot;ScreenCapture.h&quot;</span><br />
@implementation ScreenCapture<br />
<br />
<span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>ScreenCapture<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>capture<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>ScreenCapture alloc<span style="color: #009900;">&#93;</span> init<span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>UIImage <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>captureView<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>view <span style="color: #009900;">&#123;</span> &nbsp; <br />
&nbsp; &nbsp; CGRect screenRect <span style="color: #339933;">=</span> view.<span style="color: #202020;">frame</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; UIGraphicsBeginImageContext<span style="color: #009900;">&#40;</span>screenRect.<span style="color: #202020;">size</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; CGContextRef ctx <span style="color: #339933;">=</span> UIGraphicsGetCurrentContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIColor whiteColor<span style="color: #009900;">&#93;</span> set<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; CGContextFillRect<span style="color: #009900;">&#40;</span>ctx<span style="color: #339933;">,</span> screenRect<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>view.<span style="color: #202020;">layer</span> renderInContext<span style="color: #339933;">:</span>ctx<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> &nbsp; <br />
&nbsp; &nbsp; UIImage <span style="color: #339933;">*</span>newImage <span style="color: #339933;">=</span> UIGraphicsGetImageFromCurrentImageContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; UIGraphicsEndImageContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> newImage<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #339933;">-------------------</span>GlobalStyleSheet.<span style="color: #202020;">h</span><span style="color: #339933;">-------------------</span><br />
<span style="color: #339933;">#import </span><br />
<span style="color: #339933;">#import &quot;extThree20CSSStyle/extThree20CSSStyle.h&quot;</span><br />
<br />
@interface GlobalStyleSheet <span style="color: #339933;">:</span> TTDefaultCSSStyleSheet <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
@end<br />
<br />
<br />
<span style="color: #339933;">-------------------</span>GlobalStyleSheet.<span style="color: #202020;">m</span><span style="color: #339933;">-------------------</span><br />
<span style="color: #339933;">#import &quot;GlobalStyleSheet.h&quot;</span><br />
<span style="color: #339933;">#import &quot;Three20Style/UIColorAdditions.h&quot;</span><br />
<br />
&nbsp;<br />
<br />
<span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>UIImage<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>slideSwitchLeftImage<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; TTView <span style="color: #339933;">*</span>segmentView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>TTView alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> SliderWidth <span style="color: #339933;">,</span> SliderHeight<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; UILabel <span style="color: #339933;">*</span>label <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UILabel alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">80</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; label.<span style="color: #202020;">text</span> <span style="color: #339933;">=</span> LocalizedString<span style="color: #009900;">&#40;</span>@<span style="color: #ff0000;">&quot;B&quot;</span><span style="color: #339933;">,</span> @<span style="color: #ff0000;">&quot;B&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; label.<span style="color: #202020;">textColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor redColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>segmentView addSubview<span style="color: #339933;">:</span>label<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; segmentView.<span style="color: #202020;">backgroundColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor blackColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>ScreenCapture capture<span style="color: #009900;">&#93;</span> captureView<span style="color: #339933;">:</span>segmentView<span style="color: #009900;">&#93;</span> stretchableImageWithLeftCapWidth<span style="color: #339933;">:</span><span style="color: #0000dd;">1</span> topCapHeight<span style="color: #339933;">:</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>UIImage<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>slideSwitchRightImage<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; TTView <span style="color: #339933;">*</span>segmentView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>TTView alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> SliderWidth &nbsp;<span style="color: #339933;">,</span>SliderHeight<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; UILabel <span style="color: #339933;">*</span>label <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UILabel alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">80</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; label.<span style="color: #202020;">text</span> <span style="color: #339933;">=</span> LocalizedString<span style="color: #009900;">&#40;</span>@<span style="color: #ff0000;">&quot;A&quot;</span><span style="color: #339933;">,</span> @<span style="color: #ff0000;">&quot;A&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; label.<span style="color: #202020;">textColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor redColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>segmentView addSubview<span style="color: #339933;">:</span>label<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; segmentView.<span style="color: #202020;">backgroundColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor blueColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>ScreenCapture capture<span style="color: #009900;">&#93;</span> captureView<span style="color: #339933;">:</span>segmentView<span style="color: #009900;">&#93;</span> stretchableImageWithLeftCapWidth<span style="color: #339933;">:</span><span style="color: #0000dd;">1</span> topCapHeight<span style="color: #339933;">:</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>UIImage<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>slideSwitchThumbImage<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; TTView <span style="color: #339933;">*</span>thumbView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>TTView alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> SliderHeight<span style="color: #339933;">,</span> SliderHeight<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; thumbView.<span style="color: #202020;">backgroundColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor redColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span>&nbsp; <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>ScreenCapture capture<span style="color: #009900;">&#93;</span> captureView<span style="color: #339933;">:</span>thumbView<span style="color: #009900;">&#93;</span> <span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
@end<br />
<br />
<span style="color: #339933;">---------------------------------</span>testController.<span style="color: #202020;">m</span><span style="color: #339933;">----------------------</span><br />
<br />
<span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>super viewDidLoad<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; CGRect frame <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">10.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">50.0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">116</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">28</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; CGRect thumb <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">0.0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">28</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">28</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; UISlider <span style="color: #339933;">*</span>slideSwitch <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UISlider alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>frame<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>slideSwitch addTarget<span style="color: #339933;">:</span>self action<span style="color: #339933;">:</span>@selector<span style="color: #009900;">&#40;</span>sliderAction<span style="color: #339933;">:</span><span style="color: #009900;">&#41;</span> forControlEvents<span style="color: #339933;">:</span>UIControlEventTouchUpInside<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; slideSwitch.<span style="color: #202020;">backgroundColor</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>UIColor clearColor<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>slideSwitch setThumbImage<span style="color: #339933;">:</span>TTSTYLEVAR<span style="color: #009900;">&#40;</span>slideSwitchThumbImage<span style="color: #009900;">&#41;</span> forState<span style="color: #339933;">:</span>UIControlStateNormal<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>slideSwitch setMinimumTrackImage<span style="color: #339933;">:</span>TTSTYLEVAR<span style="color: #009900;">&#40;</span>slideSwitchLeftImage<span style="color: #009900;">&#41;</span> forState<span style="color: #339933;">:</span>UIControlStateNormal<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>slideSwitch setMaximumTrackImage<span style="color: #339933;">:</span>TTSTYLEVAR<span style="color: #009900;">&#40;</span>slideSwitchRightImage<span style="color: #009900;">&#41;</span> forState<span style="color: #339933;">:</span>UIControlStateNormal<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>slideSwitch thumbRectForBounds<span style="color: #339933;">:</span> thumb trackRect<span style="color: #339933;">:</span> frame value<span style="color: #339933;">:</span> slideSwitch.<span style="color: #202020;">value</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; slideSwitch.<span style="color: #202020;">minimumValue</span> <span style="color: #339933;">=</span> <span style="color:#800080;">0.0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; slideSwitch.<span style="color: #202020;">maximumValue</span> <span style="color: #339933;">=</span> <span style="color:#800080;">1.0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; slideSwitch.<span style="color: #202020;">continuous</span> <span style="color: #339933;">=</span> YES<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; slideSwitch.<span style="color: #202020;">value</span> <span style="color: #339933;">=</span> <span style="color:#800080;">0.0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#91;</span>self.<span style="color: #202020;">view</span> addSubview<span style="color: #339933;">:</span>slideSwitch<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F07%2F14%2Fhow-to-implement-a-slider-switch-with-some-three20%2F&amp;title=how%20to%20implement%20a%20slider%20switch%20%28with%20some%20three20%29" id="wpa2a_18"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/07/14/how-to-implement-a-slider-switch-with-some-three20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TTStyle的缩进实现</title>
		<link>http://blog.iwaiwai.org/waiwai/2011/01/18/115/</link>
		<comments>http://blog.iwaiwai.org/waiwai/2011/01/18/115/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 16:55:06 +0000</pubDate>
		<dc:creator>waiwai</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://blog.iwaiwai.org/waiwai/?p=115</guid>
		<description><![CDATA[在写一些小的应用时候遇见一个需求，需要在view前面做一个list－type，显然需要一个小缩进，不知到three20有没有其他的解决方案，方正我处理方式是写另一个style。使用方法是这样的。 代码如下]]></description>
			<content:encoded><![CDATA[<p>在写一些小的应用时候遇见一个需求，需要在view前面做一个list－type，显然需要一个小缩进，不知到three20有没有其他的解决方案，方正我处理方式是写另一个style。使用方法是这样的。</p>
<pre class="brush: plain; title: ; notranslate"> [TTSolidFillStyle styleWithColor:color next: [TTAreaStyle styleWithRect:CGRectMake(0, 0, Indent, 18.0) style: [TTLinearGradientFillStyle styleWithColor1:RGBCOLOR(255, 255, 255) color2:RGBCOLOR(0, 0, 0) next:nil] next: [TTBoxStyle styleWithPadding:UIEdgeInsetsMake(0, Indent + Gap, 0, 0) next: [TTTextStyle styleWithFont:nil color:TTSTYLEVAR(linkTextColor) minimumFontSize:14 shadowColor:[UIColor colorWithWhite:255 alpha:0.4] shadowOffset:CGSizeMake(0, -1) textAlignment:UITextAlignmentLeft verticalAlignment:UIControlContentVerticalAlignmentCenter lineBreakMode:UILineBreakModeWordWrap numberOfLines:0 next:nil ]]]]; </pre>
<p>代码如下</p>
<pre class="brush: plain; title: ; notranslate">
//
//  TTAreaStyle.h
//  infzm
//
//  Created by lin waiwai on 1/19/11.
//  Copyright 2011 __waiwai__. All rights reserved.
//

@interface TTAreaStyle : TTStyle {
	CGRect _rect;
	TTStyle *_style;
}

@property (nonatomic, retain) TTStyle*  style;
@property (nonatomic) CGRect rect;

+(TTAreaStyle*)styleWithRect:(CGRect)rect style:(TTStyle*)stylez next:(TTStyle*)next;

@end
</pre>
<pre class="brush: plain; title: ; notranslate">
//
//  TTAreaStyle.m
//  infzm
//
//  Created by lin waiwai on 1/19/11.
//  Copyright 2011 __waiwai__. All rights reserved.
//

#import &quot;TTAreaStyle.h&quot;

// Core
#import &quot;Three20Core/TTCorePreprocessorMacros.h&quot;

@implementation TTAreaStyle

@synthesize rect  = _rect;
@synthesize style = _style;

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)dealloc {
	TT_RELEASE_SAFELY(_style);
	[super dealloc];
}

///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
#pragma mark -
#pragma mark Class public

///////////////////////////////////////////////////////////////////////////////////////////////////
+(TTAreaStyle*)styleWithRect:(CGRect)rect style:(TTStyle*)stylez next:(TTStyle*)next; {
	TTAreaStyle* style = [[[self alloc] initWithNext:next] autorelease];
	style.rect = rect;
	style.style = stylez;
	return style;
}

///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
#pragma mark -
#pragma mark TTStyle

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)draw:(TTStyleContext*)context {

	CGContextRef ctx = UIGraphicsGetCurrentContext();
	CGRect rect = context.frame;
	CGContextSaveGState(ctx);

	[context.shape addToPath:rect];
	CGContextClip(ctx);
	CGContextClipToRect(ctx,self.rect);
	[self.style draw:context];

	CGContextRestoreGState(ctx);

	return [self.next draw:context];
}

@end
</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.iwaiwai.org%2Fwaiwai%2F2011%2F01%2F18%2F115%2F&amp;title=TTStyle%E7%9A%84%E7%BC%A9%E8%BF%9B%E5%AE%9E%E7%8E%B0" id="wpa2a_20"><img src="http://blog.iwaiwai.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iwaiwai.org/waiwai/2011/01/18/115/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

