NSSize 尺寸

前言

  • NSSize:结构体,这个结构体用来表示事物的宽度和高度。

    • Objective-C

      1
      2
      3
      4
      5
      6
      7
      8
      typedef CGSize NSSize;

      struct CGSize {
      CGFloat width;
      CGFloat height;
      };

      typedef struct CGSize CGSize;
    • Swift

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      public typealias NSSize = CGSize

      public struct CGSize {
      public var width: CGFloat
      public var height: CGFloat
      public init()
      public init(width: CGFloat, height: CGFloat)
      }

      extension CGSize {
      public static var zero: CGSize { get }
      public init(width: Int, height: Int)
      public init(width: Double, height: Double)
      }

1、NSSize 结构体变量的创建与调用

  • Objective-C

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // NSSize 结构体变量的创建与赋值

    // 先定义变量,再赋值
    NSSize size1;
    size1.width = 6;
    size1.height = 1;

    // 定义时直接赋值
    NSSize size2 = {7, 2};

    // 给指定成员赋值
    NSSize size3 = {.height = 3, .width = 8};

    // 使用函数赋值
    NSSize size4 = NSMakeSize(9, 4);

    // 使用等价的结构体定义,等价于 CGSize size5 = CGSizeMake(10, 5);
    NSSize size5 = CGSizeMake(10, 5);

    // NSSize 结构体变量值的调用

    NSLog(@"size1: %.0f, %.0f", size1.width, size1.height);
    NSLog(@"size2: %.0f, %.0f", size2.width, size2.height);
    NSLog(@"size3: %.0f, %.0f", size3.width, size3.height);
    NSLog(@"size4: %.0f, %.0f", size4.width, size4.height);
    NSLog(@"size5: %.0f, %.0f", size5.width, size5.height);
  • Swift

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // NSSize 结构体变量的创建与赋值

    // 先定义变量,再赋值
    var size1: NSSize = NSSize()
    size1.width = 6;
    size1.height = 1;

    // Int 型值
    let size2: NSSize = NSSize(width: 2, height: 5)

    // Double 型值
    let size3: NSSize = NSSize(width: 2.1, height: 6.2)

    // CGFloat 型值
    let size4: NSSize = NSSize(width: 2.2, height: 7.3)


    // 由方法创建
    let size5: NSSize = NSMakeSize(2.3, 8.4)

    // 由方法创建
    let size6: NSSize = CGSizeMake(2.4, 9.5)

    // NSSize 结构体变量值的调用

    print("\(size1.width), \(size1.height)")

2、NSSize 与 NSString 的相互转换

  • Objective-C

    1
    2
    3
    4
    5
    // NSSize 转 NSString   
    NSString *stringFronSize = NSStringFromSize(size5);

    // NSString 转 NSSize
    NSSize size6 = NSSizeFromString(stringFronSize);
  • Swift

    1
    2
    3
    4
    5
    6
    7
    let size1: NSSize = NSMakeSize(2.3, 8.4)

    // NSSize 转 String
    let string: String = NSStringFromSize(size1)

    // String 转 NSSize
    let size: NSSize = NSSizeFromString(string)
文章目录
  1. 1. 前言
  2. 2. 1、NSSize 结构体变量的创建与调用
  3. 3. 2、NSSize 与 NSString 的相互转换
隐藏目录