mirror of
https://gh-proxy.org/https://github.com/klinsmaya/dashjim.github.com.git
synced 2026-11-09 01:47:00 +08:00
修改
This commit is contained in:
@@ -8,23 +8,25 @@ tags:
|
||||
- Photoshop
|
||||
---
|
||||
|
||||
图形用户界面归根到底就是图形,图形有两种实现的方式,一是使用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,一是则是使用图片。
|
||||
代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则比较耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用图片来构建用户界面.
|
||||
设计师一般会使用PS来设计界面,所以在直接使用之前,有一个PSD到png的切图(Image Slicing)的过程.下面是切图过程中可能要注意的几点.
|
||||
图形用户界面归根到底就是图形,图形有两种实现的方式,一种是使用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片。
|
||||
代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用图片来构建用户界面.
|
||||
设计师一般会使用PS来设计界面,所以在直接使用之前,有一个PSD到png的切图(Image Slicing)过程.下面是切图过程中可能要注意的几点.
|
||||
<br>
|
||||
### 一.可重复元素
|
||||
在用户界面的图形元素中,重复随处可见 ,所以我们利用好框架提供的接口, 以比较高的性价比创建用户界面。
|
||||
#### 1.Color Pattern
|
||||
Color Pattern在Web设计中也经常会遇到比如网页的背景,甚至网络中可以找到专门收集各类可重复的纹理图案的站点,比如 [http://subtlepatterns.com](http://subtlepatterns.com).
|
||||
比如这样的一个小图片模板
|
||||
比如这样的一个小图片模板
|
||||
<br>
|
||||

|
||||
<br>
|
||||
{% highlight objc %}
|
||||
UIColor *circleColorPattern = [UIColor colorWithPatternImage:[UIImage imageNamed:@"circle_pattern.png"]];
|
||||
{% endhighlight %}
|
||||
这样便可以得到一个颜色模板,用这个颜色绘画或者填充某个区域的时候,上面的图片会在指定的区域中进行平铺.比如将一个View的背景颜色设置成这个颜色,便会得到如下结果
|
||||
|
||||
<br>
|
||||

|
||||
|
||||
<br>
|
||||
#### 2.resizableImage
|
||||
除了整体平铺之外,很多时候我们希望某个图片的局部进行平铺,而其余部分则保持不变.
|
||||
比如常见的按钮,聊天的气泡背景或者图片的阴影边框.
|
||||
@@ -32,9 +34,15 @@ UIColor *circleColorPattern = [UIColor colorWithPatternImage:[UIImage imageNamed
|
||||

|
||||
但是自己看,你会发现按钮中间大都数像素都是横向重复的,所以可以使用iOS的图片接口来使用体积更小的图片实现相同的效果.
|
||||
首先使用PS的切图工具进行切图,下图中的切图逻辑是,左边切14像素(13像素加1像素,1像素为中间重复部分),右边切13像素.
|
||||
<br>
|
||||

|
||||
<br>
|
||||
<br>
|
||||
|
||||
切图后将左右合并,变成最终所需要的图片
|
||||
<br>
|
||||

|
||||
<br>
|
||||
图片宽度为27像素宽,中间第14个像素为中间重复的部分.
|
||||
|
||||
{% highlight objc %}
|
||||
@@ -49,6 +57,7 @@ resizableImageWithCapInsets:的参数是一个UIEdgeInsets的结构体类型,被
|
||||
{% endhighlight %}
|
||||
这个方法有局限性,它只能指定leftCapWidth和topCapHeight,然后只有一个像素能够重复,也就是rightCapWidth为 imageWidth-leftCapWidth-1,而bottomCapHeight为 imageHeight - topCapHeight -1,所以重复的始终是中间的那一个像素.
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
### 二.动画边缘锯齿
|
||||
有时候需要在旋转的动画中使用到图片,比如按钮的旋转,图片的旋转,为了避免在旋转的过程中出现边缘锯齿,我们需要在切图的时候,在边缘上多留至少一像素的透明像素,因为iOS在处理图片的时候对于外边缘是不做抗锯齿处理的,但是对于图片内部的边缘则会做抗锯齿处理.
|
||||
|
||||
Reference in New Issue
Block a user