• 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,iPad4iPad 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”]]

                      

     

  • 相关阅读:
    STL中关于map和set的四个问题?
    PHP之Zip扩展,解压缩文件,ZipArchive类
    PHP之音乐ID3扩展
    关于PHP执行超时的问题
    PHP中GD库安装
    PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
    PHP之xdebug详解
    PHP上传文件详解
    php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
    深入研究php://input与php://output
  • 原文地址:https://www.cnblogs.com/katydid/p/4309998.html
Copyright © 2020-2023  润新知