• UIView controller 大小初始化


    1 view contoller的初始化

    initWithFrame:  self.view.bounds   or self.view.frame  or   CGRectMake(0, 0, 100, 100)

    bound和frame是两个结构体变量:

    struct CGRect {
    
        CGPoint origin;
    
        CGSize size;
    
    };
    
    typedef struct CG_BOXABLE CGRect CGRect;

    //--------------------------------------------

    struct

    CGPoint {

        CGFloat x;

        CGFloat y;

    };

    typedef struct CG_BOXABLE CGPoint CGPoint;

    //---------------------------------------------

    struct CGSize {

        CGFloat width;

        CGFloat height;

    };

    ---------------------------------------------

    CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

    {

      CGRect rect;

      rect.origin.x = x; rect.origin.y = y;

      rect.size.width = width; rect.size.height = height;

      return rect;

    }

    关于Frame和bounds:

    Frame

    As the documentation clarifies, the frame of a view is a structure, a CGRect, that defines the size of the view and its position in the view's superview(依赖父view), the superview's coordinate system. Take a look at the following diagram for clarification.The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

    Bounds

    The bounds property of a view defines the size of the view and its position in the view's own coordinate system. This means that in most cases the origin of the bounds of a view are set to {0,0} as shown in the following diagram. The view's bounds is important for drawing the view.The bounds rectangle, which describes the view’s location and size in its own coordinate system.

    This means a few things:

    1. If you create a view at X:0, Y:0, 100, height:100, its frame and bounds are the same.
    2. If you move that view to X:100, its frame will reflect that change but its bounds will not. Remember, the bounds is relative(相对) to the view’s own space, and internally to the view nothing has changed.
    3. If you transform(改变) the view, e.g. rotating it or scaling it up(旋转缩放), the frame will change to reflect(反映) that, but the bounds still won’t – as far as the view is concerned(关注) internally, it hasn’t changed.
    4. When you change the width or height of either frame or bounds, the other value is updated to match. Generally it’s better to modify bounds plus center and transform, and let UIKit calculate the framefor you.

    CGRectMake 设置原点和宽高,但是坐标系要看它是附在哪个view上。

     setBounds的作用是:强制将自己(view1)坐标系的左上角点,改为(-20,-20)。那么view1的原点,自然就向在右下方偏移(20,20)

  • 相关阅读:
    MD5加密40位加密规律
    python中 if __name__ == '__main__': 浅解
    python3关于邮件的操作
    ecshop莫名其妙出现“Table '.starecs_stats' is marked as crashed and should be repaired”
    微擎安装问题
    蝉知CMS本地迁移到服务器具体步骤
    React Hooks useContext + useReducer实现简易Redux
    git merge时merge/squash merge/rebase merge的区别
    FormData 和 Content-Type: multipart/form-data
    对Promise.prototype.finally()的粗浅理解
  • 原文地址:https://www.cnblogs.com/8335IT/p/15007726.html
Copyright © 2020-2023  润新知