IOS之UIKit_Day15

day15

回顾:

       1.绘图:

       编写位置:重写UIView的drawRect{}方法

       调用:系统自动调用

       绘制顺序:先绘制父视图中的背景属性----》调用父视图中的drawRect方法-------》绘制各个子视图的背景------》调用各个子视图的drawRectf方法

       重绘:调用setNeedDisplay方法

 

       2 UIBezierPath贝塞尔曲线

              是对CoreGraphics中的一部分API的封装,可以用于绘制曲线 矩形 椭圆以及对变形等

       绘制步骤:

              a.移动到起点 开始绘制路径

              b.设置线条的宽度 线头 线条的样式

              c.设置描边和填充的颜色

              d.实际的描边Stroke或者填充Fill

       3.绘制字符串

       使用NSString中的方法:

              drawAtPoint

              drawAtRect

       注意:根据字符串的长度计算在指定了宽度以后需要的高度

       4 绘制图片

       使用UIImage中的方法

       drawAtPoint

       drawAtRect

       注意:可以搭配UIBezierPath的addClip功能实现图片边缘的自定义

 

Today:贴图和美化

1.IOS设备的种类

       1.1 设备分辨率和坐标的大小

Retina设备

分辨率

点(坐标)

iPhone4/4s

640 X 960

320 X 480  @2x

iPhone5/5s/5c

640 X 1136

320 X 568  @2x

new iPad,iPad4?iPad Air,iPad mini2

2048 X 1536 

1024 X 768  @2x

iPhone6

750 X 1334 

375 X 667   @2x

iPhone6 Plus

1242 X 2208

414 X 736    @3x

1.2Retina屏设备对图片的处理

       .程序中的图片:在不同的尺寸下的图片上添加@2X或者@3X这样的标示即可,系统可以自动识别。

 

2. 9切片技术

       2.1 为什么使用9切片技术

       可以用代码实现基于一个简单的图片 产生不同尺寸的图片的一种手段

       2.2 原则:

              4个角不变

              上下两边横向拉伸或者复制

              左右两边纵向拉伸或者复制

              中间横向纵向拉伸或者复制

       两种模式:Tile切片复制(默认模式)

                        Stretch切片拉伸

       2.3 应用场景:

              消息栏 新闻栏 各种框的美化 按钮背景  Cell背景等

       2.4 实现方法:

       a.使用代码方式:

              UIImage *newImage=[imageresizableImageWithCapInsets:UIEdgeInsetsMake(10,12,10,12)resizingMode:UIImageResizingModeStretch];

              B.使用storyBoard的方式实现

                     图片拖拽到Xcassets选中图片进行操作

3. 按钮的贴图美化

       3.1 UIButton区分状态设置图片

              Normal 正常状态  没有点击的时候

              Highlighted 高亮状态 (用户按下后的状态)

              Disable enabled=NO 按钮不可用的状态

              Selected selected=YES 按钮被点击后的状态 需要使用代码实现

                     setSelected:设置

4 滑块的贴图美化

       UISlider

       setMaximage:为划过的部分

       setMinimage:划过的部分

       setThumbimage:滑块部分

5.tintColor整体修改颜色

       统一管理一个视图中的所有子视图和子视图推出的视图的颜色

       批量修改一些视图的颜色

       颜色受控制的因素:

                   拥有XXXTintColor属性 如UISwitch

                   没有XXXTintColor  受从UIView中继承来的tintColor影响

                    self.window,tintColor 影响整个应用的风格 除非某一个属兔特别设置了自己的tintColor颜色

6.UIAppearance某一部分控件

          遵守此协议的对象 可以批量设置某种控件的外观(颜色贴图等)

          获取方式

                   +(instancetype)appearance

          使用方式

          拿到此对象后,通过这个对象设置背景、颜色等来批量设置某一类控件的外观

          [UISliderappearance]setTintColor:[UIColor redColor]]

7UINavigationBar美化

       设置NavagationBar的颜色

              .barTintColor设置bar的全局颜色

       设置是否透明

              .translucent

       给NavigationBar贴图

     .setBackgroundImage:forBarMetrice

          [naviBarsetBackgroundImage:[UIImage imageNamed:@"NavigationBarDefault"]forBarMetrics:UIBarMetricsDefault];//设置竖屏的显示效果

   [naviBarsetBackgroundImage:[UIImageimageNamed:@"NavigationBarLandscapePhone"]forBarMetrics:UIBarMetricsLandscapePhone]//设置横屏的显示效果

       设置返回按钮的图片

                   naviBar.backIndicatorImage= [UIImage imageNamed:@"back_btn"];

   naviBar.backIndicatorTransitionMaskImage =[UIImageimageNamed:@"back_btn”];//在推出的时候需要过度一下

   设置标题栏的文字字体:

           naViBar.titleTextAttribute=@{

                            NSFontAttributeName:[UIFontboldSystemFontOfSize:24],

                             NSForegroundColorAttributeName:[UIColorredColor]

                            };

    设置标题为任意视图:

                   UIStepper*stepper=[[UIStepper alloc]init]

                   self.navigationItem.titleView=stepper

    设置状态栏的风格

                   //重写方法 用于设置状态栏的风格

                   -(UIStatusBarStyle)preferredStatusBarStyle{

          returnUIStatusBarStyleLightContent;

}

    是否显示状态栏

          -(bool)prefersStatusBarHidden{

          returnYES;

          }

8 UITableViewCell的背景设置 贴图

          实现步骤:

                   a.修改TableView的分割线为None

                   b.修改TableView的背景色为clearColor

                   c.Cell.backgroundView=[[UIImageViewalloc]initWithImage:[UIImage imageNamed:@“list”]];

              Cell.selectedBackgroundView=[[UIImageViewalloc]initWithImage:[UIImage imageName:@“listSelect”]]

                  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。