<?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>Notes of a Developer &#187; UI</title>
	<atom:link href="http://www.developers-life.com/tag/ui/feed" rel="self" type="application/rss+xml" />
	<link>http://www.developers-life.com</link>
	<description>Develop on Objective-C, UIKit, C, OpenGL for  iPhone, iPad, Mac OS X</description>
	<lastBuildDate>Sun, 05 Sep 2010 16:29:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Make gradient on iPhone/iPad</title>
		<link>http://www.developers-life.com/make-gradient-on-iphoneipad.html</link>
		<comments>http://www.developers-life.com/make-gradient-on-iphoneipad.html#comments</comments>
		<pubDate>Sun, 30 May 2010 18:57:09 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Gradient]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[UITabBar]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=983</guid>
		<description><![CDATA[It&#8217;s easy! As of iPhone SDK 3.0, custom gradients can be implemented very easily,  without subclassing or images, by using the new CAGradientLayer
add framework
#import &#60; QuartzCore/QuartzCore.h&#62;

so, example:


or
UIView *myTabView = &#91;&#91;UIView alloc&#93; initWithFrame:frame&#93;;
&#160; &#160; CAGradientLayer *gradient = &#91;CAGradientLayer layer&#93;;
&#160; &#160; gradient.frame = myTabView.bounds;
&#160; &#160; gradient.colors = &#91;NSArray arrayWithObjects:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s easy! As of iPhone SDK 3.0, custom gradients can be implemented very easily,  without subclassing or images, by using the new CAGradientLayer</p>
<p>add framework</p>
<div class="codecolorer-container objc" style="height:35px;"><div class="objc codecolorer"><ol><li class="li1"><div class="de1"><span class="co1">#import &lt; QuartzCore/QuartzCore.h&gt;</span></div></li>
</ol></div></div>
<p>so, example:</p>
<p><a href="http://gyazo.com/7c6b82b7e31568c52a4b267e4f91c78b.png" target="_blank"><img class="alignnone" title="make custom gradient on iPhone, iPad" src="http://gyazo.com/7c6b82b7e31568c52a4b267e4f91c78b.png" alt="" width="448" height="160" /></a><br />
<span id="more-983"></span><br />
or</p>
<div class="codecolorer-container objc"><div class="objc codecolorer"><ol><li class="li1"><div class="de1">UIView <span class="sy0">*</span>myTabView <span class="sy0">=</span> <span class="br0">&#91;</span><span class="br0">&#91;</span>UIView alloc<span class="br0">&#93;</span> initWithFrame<span class="sy0">:</span>frame<span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CAGradientLayer <span class="sy0">*</span>gradient <span class="sy0">=</span> <span class="br0">&#91;</span>CAGradientLayer layer<span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; gradient.frame <span class="sy0">=</span> myTabView.bounds;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; gradient.colors <span class="sy0">=</span> <span class="br0">&#91;</span><span class="kw5">NSArray</span> arrayWithObjects<span class="sy0">:</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span><span class="kw4">id</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIColor colorWithRed<span class="sy0">:</span><span class="nu0">0.1</span> green<span class="sy0">:</span><span class="nu0">0.1</span> blue<span class="sy0">:</span><span class="nu0">0.1</span> alpha<span class="sy0">:</span><span class="nu0">0.8</span> <span class="br0">&#93;</span> CGColor<span class="br0">&#93;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, <span class="br0">&#40;</span><span class="kw4">id</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIColor colorWithRed<span class="sy0">:</span><span class="nu0">0.1</span> green<span class="sy0">:</span><span class="nu0">0.1</span> blue<span class="sy0">:</span><span class="nu0">0.1</span> alpha<span class="sy0">:</span><span class="nu0">0.8</span> <span class="br0">&#93;</span> CGColor<span class="br0">&#93;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, <span class="br0">&#40;</span><span class="kw4">id</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIColor colorWithRed<span class="sy0">:</span><span class="nu0">0.1</span> green<span class="sy0">:</span><span class="nu0">0.1</span> blue<span class="sy0">:</span><span class="nu0">0.1</span> alpha<span class="sy0">:</span><span class="nu0">0.8</span> <span class="br0">&#93;</span> CGColor<span class="br0">&#93;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, <span class="br0">&#40;</span><span class="kw4">id</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIColor blackColor<span class="br0">&#93;</span> CGColor<span class="br0">&#93;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, <span class="br0">&#40;</span><span class="kw4">id</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIColor blackColor<span class="br0">&#93;</span> CGColor<span class="br0">&#93;</span>, <span class="kw2">nil</span><span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#91;</span>myTabView.layer insertSublayer<span class="sy0">:</span>gradient atIndex<span class="sy0">:</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#91;</span><span class="br0">&#91;</span>self.tabBarController tabBar<span class="br0">&#93;</span> insertSubview<span class="sy0">:</span>myTabView &nbsp;atIndex<span class="sy0">:</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#91;</span>myTabView &nbsp;release<span class="br0">&#93;</span>;</div></li>
</ol></div></div>
<p>Result:<br />
<img class="alignnone" title="custom gradient in tabbar" src="http://gyazo.com/06c6dc8a8b574ecb3c2879c3d5226fc5.png" alt="" width="348" height="223" /></p>
<p>or, nice example with use Core Graphics to draw the gradient</p>
<div class="codecolorer-container objc"><div class="objc codecolorer"><ol><li class="li1"><div class="de1"><span class="sy0">-</span> <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>drawRect<span class="sy0">:</span><span class="br0">&#40;</span>CGRect<span class="br0">&#41;</span>rect </div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGContextRef currentContext <span class="sy0">=</span> UIGraphicsGetCurrentContext<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGGradientRef glossGradient;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGColorSpaceRef rgbColorspace;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw4">size_t</span> num_locations <span class="sy0">=</span> <span class="nu0">2</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGFloat locations<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#123;</span> <span class="nu0">0.0</span>, <span class="nu0">1.0</span> <span class="br0">&#125;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGFloat components<span class="br0">&#91;</span><span class="nu0">8</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#123;</span> <span class="nu0">1.0</span>, <span class="nu0">1.0</span>, <span class="nu0">1.0</span>, <span class="nu0">0.35</span>, &nbsp;<span class="co2">// Start color</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">1.0</span>, <span class="nu0">1.0</span>, <span class="nu0">1.0</span>, <span class="nu0">0.06</span> <span class="br0">&#125;</span>; <span class="co2">// End color</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; rgbColorspace <span class="sy0">=</span> CGColorSpaceCreateDeviceRGB<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; glossGradient <span class="sy0">=</span> CGGradientCreateWithColorComponents<span class="br0">&#40;</span>rgbColorspace, components, locations, num_locations<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGRect currentBounds <span class="sy0">=</span> self.bounds;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGPoint topCenter <span class="sy0">=</span> CGPointMake<span class="br0">&#40;</span>CGRectGetMidX<span class="br0">&#40;</span>currentBounds<span class="br0">&#41;</span>, 0.0f<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGPoint midCenter <span class="sy0">=</span> CGPointMake<span class="br0">&#40;</span>CGRectGetMidX<span class="br0">&#40;</span>currentBounds<span class="br0">&#41;</span>, CGRectGetMidY<span class="br0">&#40;</span>currentBounds<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGContextDrawLinearGradient<span class="br0">&#40;</span>currentContext, glossGradient, topCenter, midCenter, <span class="nu0">0</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGGradientRelease<span class="br0">&#40;</span>glossGradient<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; CGColorSpaceRelease<span class="br0">&#40;</span>rgbColorspace<span class="br0">&#41;</span>; </div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div></div>
<p><a href="http://developer.apple.com/iphone/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_shadings/dq_shadings.html#//apple_ref/doc/uid/TP30001066-CH207-TPXREF101" target="_blank">Many documentations</a></p>
<p><noindex><br />
<a target="_blank" href="http://stackoverflow.com/questions/422066/gradients-on-uiview-and-uilabels-on-iphone">resource</a></noindex></p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/make-gradient-on-iphoneipad.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
