zoukankan      html  css  js  c++  java
  • CGGeometry Reference (一)

    知识点 frame 与bounds 的区别

    1.frame 是这个视图的大小在父视图的位置 。 如x 20 y 20  width 200 height 300

    2.bounds 是这个视图的大小在自身的位置 。 如 x 0  y  0  width 200 height 300  ,bounds 的x,y 永远为0.

    3.CGRectUnion  接受两个CGRect 结构体作为参数并且返回一个能够包含这两个矩形的最小矩形,听起来可能没什么,我相信你也可以用几行代码轻松实现这个功能,不过 CGGeometry 做的是给你提供一些方法让你的代码更干净、可读性更强。

    // CGRectUnion

    CGRect frame1 = CGRectMake(80.0, 100.0, 150.0, 240.0);

    CGRect frame2 = CGRectMake(140.0, 240.0, 120.0, 120.0);

    CGRect frame3 = CGRectUnion(frame1, frame2);

    UIView *view1 = [[UIView alloc] initWithFrame:frame1];

    [view1 setBackgroundColor:[UIColor redColor]];

    UIView *view2 = [[UIView alloc] initWithFrame:frame2];

    [view2 setBackgroundColor:[UIColor orangeColor]];

    UIView *view3 = [[UIView alloc] initWithFrame:frame3];

    [view3 setBackgroundColor:[UIColor grayColor]];

    [self.view addSubview:view3];

    [self.view addSubview:view2];

    [self.view addSubview:view1];

    4.CGRectDivide 它帮你把一个给定矩形分割成两个

    // CGRectDivide

    CGRect frame = CGRectMake(10.0, 50.0, 300.0, 300.0);

    CGRect part1;

    CGRect part2;

    CGRectDivide(frame, &part1, &part2, 100.0, CGRectMaxYEdge);

    UIView *view1 = [[UIView alloc] initWithFrame:frame];

    [view1 setBackgroundColor:[UIColor grayColor]];

    UIView *view2 = [[UIView alloc] initWithFrame:part1];

    [view2 setBackgroundColor:[UIColor orangeColor]];

    UIView *view3 = [[UIView alloc] initWithFrame:part2];

    [view3 setBackgroundColor:[UIColor redColor]];

    [self.view addSubview:view1];

    [self.view addSubview:view2];

    [self.view addSubview:view3];

    比较和包含

    用下面六个方法来比较几何结构和检查包含关系非常简单。

    • CGPointEqualToPoint
    • CGSizeEqualToSize
    • CGRectEqualToRect
    • CGRectIntersectsRect
    • CGRectContainsPoint
    • CGRectContainsRect

    CGGeometry Reference 还有一些其他宝贝,比如CGPointCreateDictionaryRepresentation可以用来将一个 CGPoint 结构体转换为一个 CGDictionaryRef,CGRectIsEmpty可以用来检查一个矩形的宽高是否都为零。更多详情请看[《CGGeometry Reference 文档》]()。

    将来的自己,会感谢现在不放弃的自己!
  • 相关阅读:
    Java 端口转发
    Tomcat笔记
    RocketMQ开启ACL后客户端连接报Algorithm HmacSHA1 not available的解决方式
    RSA签名与验签
    小米9升级MIUI11
    【转】linux awk命令详解
    进程和线程
    Jenkins笔记
    【转】Jenkins启动、停止脚本
    UiAutomator源码分析
  • 原文地址:https://www.cnblogs.com/TheYouth/p/5393660.html
Copyright © 2011-2022 走看看