• [Swift实际操作]七、常见概念-(4)范围CGRect的使用详解


    本文将为你演示区域对象CGRect的使用。
    你可以将区域对象,看作是点对象和尺寸对象的组合

    首先导入需要使用到底界面工具框架

    import UIKit

    然后初始化一个区域对象,
    它的原点位于(0,0),宽度和高度都是100

    let rect = CGRect(x: 0,y: 0, 100,height: 100)

    从输出的区域对象的字符描述可以看出,
    区域对象由大括号包括,并由x、y、宽度和高度四个值组合而成

    rect.debugDescription

    区域对象可以由点对象和尺寸对象组合而成,
    首先定义一个位于原点的点对象

    let ori = CGPoint.zero

    接着初始化一个宽度和高度都是100的尺寸对象

    let si = CGSize( 100,height: 100)

    然后使用刚刚创建的点对象和尺寸对象,初始化一个区域对象,
    该初始化方法包含原点和尺寸两个参数

    let secondRect = CGRect(origin: ori,size: si)

    查询区域对象的原点坐标

    1 secondRect.origin.x
    2 secondRect.origin.y

    查询区域对象的宽度和高度

    1 secondRect.size.width
    2 secondRect.size.height

    也可以直接获取区域对象的宽度和高度属性

    1 secondRect.width
    2 secondRect.height

    通过水平和垂直方向上的最小值和最大值,
    可以查询区域对象左上角和右下角的坐标

    1 secondRect.minX
    2 secondRect.maxX
    3 secondRect.minY
    4 secondRect.maxY

    判断该区域是否包含某个指定的点

    secondRect.contains(CGPoint(x: 10,y: 10))

    判断该区域是否包含某个指定的区域

    secondRect.contains(CGRect(x: 0,y: 0, 50,height: 50))

    判断该区域是否和另一个区域相等

    secondRect.equalTo(rect)

    获取另一个区域对象,该区域对象位于原区域对象的内部,
    并且和原区域对象的四周保持10点的距离

    secondRect.insetBy(dx: 10,dy: 10)

    获得两个区域相交的区域,并观测右侧输出的结果

    secondRect.intersection(CGRect(x: 40,y: 40, 100,height: 20))

    判断两个区域是否相交

    secondRect.intersects(CGRect(x: 80,y: 0, 100,height: 100))

    获得一个区域对象,在水平和垂直方向各偏移10点之后的区域

    secondRect.offsetBy(dx: 10,dy: 10)

    获得两个区域合并之后的区域

    secondRect.union(CGRect(x: 50,y: 50, 100,height: 100))

    和点对象尺寸对象相同,同样可以将一个格式化的字符串,转换为区域对象

    CGRectFromString("{{0,0},{100,100}}")

    技巧:将游戏内的二次下载推迟到玩家完成游戏的早期部分之后。为必须进行的应用内下载设计进度条和一些视觉效果,用于吸引玩家注意。

  • 相关阅读:
    SystemV和BSD的区别
    Linux init 系列一 System V风格
    ps -ef和ps aux的区别
    Linux中/etc/resolv.conf文件简析
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stoc
    在Linux中利用Service命令添加系统服务及开机自启动
    实例具体解释Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)
    关于程序性能优化基础的一些个人总结
    C++开发人脸性别识别总结
    double型转换成string型
  • 原文地址:https://www.cnblogs.com/strengthen/p/9756415.html
Copyright © 2020-2023  润新知