zoukankan      html  css  js  c++  java
  • [Swift实际操作]七、常见概念-(3)尺寸CGSize的使用详解

    本文将为你演示CGSize的使用

    首先导入需要使用到的两个框架

    1 import UIKit
    2 import QuartzCore

    定义一个尺寸对象,尺寸对象包含宽度和和高度两个参数。
    从右侧的结果可以看出,此时该尺寸对象的宽度和高度都是0

    let zeroSize = CGSize.zero

    初始化另一个尺寸对象,并设置它的宽度为20,高度为10

    let size = CGSize( 20, height: 10)

    查看该尺寸对象的高度和宽度的数值

    1 size.width
    2 size.height

    从输出的尺寸对象的字符描述可以看出,
    尺寸对象由大括号包括,
    并由宽度和高度两个值组合而成

    size.debugDescription

    通过仿射变换,可以对尺寸对象进行变形。
    在此初始化一个仿射变换对象,并设置其值为原始值

    let transform: CGAffineTransform = CGAffineTransform.identity

    将仿射变换对象在水平和垂直方向上,各平移10点的距离

    let moveTransform = transform.translatedBy(x: 10, y: 10)

    然后给尺寸对象应用平移后的仿射变换。
    从右侧输出的结果可以看出,尺寸对象的宽度和高度没有发生变化。

    let secondSize = size.applying(moveTransform)

    接着将仿射变换对象在水平方向上放大两倍,垂直方向上保持不变

    let rotateTransform = moveTransform.scaledBy(x: 2.0, y: 1.0)

    然后给尺寸对象应用缩放后的仿射变换。
    从右侧输出的结果可以看出,
    尺寸对象的宽度增加至两倍大小,而高度没有发生变化

    let thirdSize = size.applying(rotateTransform)

    判断两个尺寸大小是否相同,由于第三个尺寸对象是经常缩放变形的,
    所以它们的尺寸并不相同。

    thirdSize.equalTo(size)

    判断两个尺寸大小是否相同

    thirdSize.equalTo(CGSize( 40, height: 10))

    尺寸对象和字符串也是可以相互转换的。通过系统提供的函数,
    可以很方便地将格式化后的字符串,转化为尺寸对象。

    let fifthSize = CGSizeFromString("{200,100}")
  • 相关阅读:
    java 9+版本中,接口的内容总结
    发红包的案例
    java中成员变量和局部变量的区别
    分别使用面向对象和面向过程两个不同的思路编写代码,打印输出一个数组,输出数组的格式:“[10,20,30,40,50]”
    题目要求:不能使用新数组,就用原来的唯一的数组进行反转
    request.getRequestDispatcher()和response.sendRedirect()区别
    Maven是什么
    字符串中的各种方法
    数组中的各种方法
    字符串的模式匹配方法-match-search-repalce
  • 原文地址:https://www.cnblogs.com/strengthen/p/9756128.html
Copyright © 2011-2022 走看看