• UI中面试常见问题


    UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow,但可以手动创建多个UIWindow
    UIWindow的主要作用:
    提供一个区域来显示视图
    将事件分发给视图
    与UIViewController协同工作,方便完成设备方向旋转的支持
    王军老师  22:32:36
    添加UIView到UIWindow中两种常见方式:
    addSubview:直接将UIView添加到UIWindow中,程序负责维护UIView的生命周期以及刷新,但并不会理会UIView对应的UIViewController
    rootViewController:自动将UIViewController对应的UIView添加到UIWindow中,同时负责维护UIViewController和UIView的生命周期
     
    常用方法
    makeKeyWindow:让当前UIWindow变成keyWindow
    makeKeyAndVisible:让当前UIWindow变成keyWindow,并显示出来
    王军老师  22:33:11
    UIView是iOS中界面元素的基础,所有的界面元素都继承它,可以说在iPhone中你能看到的、摸到的,都是UIView
    UIView的基本功能:
    绘图和动画(用CALayer和CAAnimation实现)
    事件处理(继承了UIRsponder)
    一个UIView可以包含和管理若干个子视图,决定着子视图的位置和大小
    王军老师  22:33:30
    frame 
    在父视图坐标系中的位置(CGPoint origin)和大小(CGSize size)
    bounds
    在本视图坐标系中的位置(CGPoint origin的x、y永远为0)和大小(CGSize size)
    center
    视图的中点在父视图坐标系中的位置
    UIView *superview 父视图
    NSArray *subviews 所有的子视图
    UIWindow *window  当前视图所在的窗口
    BOOL userInteractionEnabled YES代表接收触摸事件
     
    王军老师  22:33:38
    View1是View2的父视图
    View2.frame = {x=70,y=50,width=60,height=40}
    View2.bounds = {x=0,y=0,width=60,height=40}
    View2.center = (x=100, y=70)
     
    UIKit框架中的坐标系都如左图所示,视图的左上角为原点(0,0),x轴向右正向延伸,y轴向下正向延伸
     
    View3中frame的x,y值:
    如果绿色视图是View3的父视图,那么View3的x,y为红色箭头的长度
    如果View1是View3的父视图,那么View3的x,y为蓝色箭头的宽度
    王军老师  22:33:48
    - (void)removeFromSuperview
    从父视图中移除(当前视图的计数器会-1)
    - (void)addSubview:(UIView *)view
    添加一个子视图(新添加的子视图在父视图的最上面,子视图的计数器会+1)
    - (UIView *)viewWithTag:(NSInteger)tag
    根据tag找到对应的子视图
    王军老师  23:23:02
    frame指的是:该view在父view坐标系统中的位置和大小。(参照 点是父亲的坐标系统) bounds指的是:该view在本身坐标系统中 的位 置和大小。(参照点是本身坐标系统)
  • 相关阅读:
    Android native CursorWindow数据保存原理
    王立平--EditText实现单行显示,左側图标,提示信息
    Cocos2d-x 3.4 之 消灭星星 > 第三篇(终) <
    关于Segmentation fault错误
    python 2.x 与3.x的区别
    σ 代数与测度(measures)
    中文的表达 —— 句式、段落、结构(逻辑)
    中文的表达 —— 句式、段落、结构(逻辑)
    matlab 快捷键
    matlab 快捷键
  • 原文地址:https://www.cnblogs.com/YDBBK/p/4790963.html
Copyright © 2020-2023  润新知