1.绘制顺序
<1>铺背景
.backgroundColor 先起作用
<2>绘制
drawRect
<3>绘制子视图
重复1.2步
2.绘制其它图形
曲线、圆角矩形、椭圆…
四个重要点:开始点 结束点 控制点1 控制点2
工厂方法,初始化方法,add...(普通方法)
3.画字符串 NSString draw
超出视图的部分自动换行的
超出自定义图形区域 会舍掉内容
自适应字体的个数
新语法要求,其属性必须是字典的方式:
NSDictionary *attributes = @{NSFontAttributeName:[UIFont italicSystemFontOfSize:90],NSForegroundColorAttributeName:[UIColor redColor]};
[str drawAtPoint:CGPointMake(20, 30) withAttributes:attributes];CocoaLigature1
4.画图片
(1)在屏幕上绘制图片
(2)可以指定一个图形,剪切图片的内容
5.贴图
美化app的。
5.1 基本概念
iOS设备 分辨率 点坐标
Retina:
ipone4/4S 640*960 320*480
iPhone5/5S 640*1136 320*568
iphone6 750*1334 375*667
ipone6plus 1242*2208 414*736
new iPad,ipad4
ipad Air
ipad Air2
ipad mini2
ipad mini3 2048*1536 1024*768
非Retina
ipad,ipad2
ipad mini 1024*768 1024*768
iphone3G3 320*480 320*480
iphone6plus R屏上一个点 = 3*3个像素 3x
Retina屏上一个点 = 2*2个像素 2x
非Retina屏幕上一个点 = 1*1个像素 1x
5.2 ios系统加载图片时,会对Retina相关图片进行处理。
***在代码中的是:文件名.jpg
if(Retina…){
文件名@2x.jpg;
}
else{
文件名.jpg
}
原则:
if(当前的设备是Retina){
if(资源中是否存在...@2x.jpg){
加载welcome1@2x.jpg
}else{
加载welcome1.jpg
}
}else{
加载welcome1.jpg
}
注意:可能存在缓存问题。
把项目缓存清空(Product->Clear)
再清空模拟器的缓存(删除模拟器中的app或还原)
5.3 9切片技术(9 slick)
(1)目的
解决不同尺寸,相同设计风格的图片,需要多张图片的问题。
如果不切图,程序就得写代码重绘(IOS6以前就这么干),活着美工重新做相应的图片,出多个图。
(2)用在哪里
消息框、新闻栏、各项目…需要美化,都可以使用。
(3)切片原则
切的单位是点,切刀与边的距离。
三切片、九切片(最多四刀)
(4)两种模式
Tile 瓦片(复制)模式(复制)
Stretch 拉伸模式
练习:撕书的效果
5.4 Xcode5中的9 Slicing技术
不写代码完成9 Slicing技术
(1)Xcode5新增的AssetCatalog项目组件
在任何项目中,都有一个images.xcassets目录,用来统一管理项目中的图片资源,还提供对图片的设置适配,高清,拉伸等支持,也提供了9Slicing的支持。
(2)使用Asset的好处在于,提供的资源文件不需要特别遵守文件的命名规范,另外,可以不写代码进行切片。还可以管理和适配各种需要的图片资源。
(3)如何使用
拖拽图片到images.xcassets中
选中其中要切片的项(1x(storyboard),2x(模拟器、真机))。
点击下方的show Slicing就可以切片了。
5.5 对各种控件进行贴图美化
UIButon、UITextField、UISlider、UISwitch
UIButton
按钮等控件一般有以下几种状态:
1>Normal 正常
2>Highlighted 高亮(被用户按下之后的状态)
3>Disabled .enabled = NO(按钮不可用)
4>Selected .selected = YES(按钮被选中)
可以为一个按钮的不同状态设置不同的贴图:
1>直接在xib或storyboard中配置
2>用代码来设置
美工提供的图片一般会如此命名:
XxxxYyyy.png
XxxxYyyy@2x.png Normal状态下的图片
XxxxYyyyHL.png
XxxxYyyyHL@2x.png Highlighted状态下的图片