• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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

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

import UIKit

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

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

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

rect.debugDescription

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

let ori = CGPoint.zero

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

let si = CGSize(width: 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,width: 50,height: 50))

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

secondRect.equalTo(rect)

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

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

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

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

判断两个区域是否相交

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

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

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

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

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

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

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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift代理使用发布时间:2022-07-13
下一篇:
[Swift]LeetCode341.压平嵌套链表迭代器|FlattenNestedListIterator发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap