zoukankan      html  css  js  c++  java
  • UIView的常用方法

    bringSubviewToFront:
    把指定的子视图移动到顶层
    - (void)bringSubviewToFront:(UIView *)view
    参数
    view
    需要移到顶层的视图

    convertPoint:fromView:
    把一个点从一个坐标系转换到接收者的坐标系
    - (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
    参数
    point
    一个视图中坐标系上的点
    view
    一个视图包含了点和他自身坐标系。如果是图是nil,那么这个方法将尝试转换基于窗口的坐标系。否则视图和那个接收者必须属于同一个UIWindow对象。
    返回值
    一个转换到接收者坐标系的点

    convertPoint:toView:
    转换一个点从接收者坐标系到给定的视图坐标系
    - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
    参数
    point
    一个在调用者坐标系中的点
    view
    一个包含了需要被转换的点的视图。如果视图是nil,那么这个方法将会转换成基于窗口的坐标。否则视图和接收者都要属于同一个UIWindow对象。
    返回值
    基于视图的坐标系转换过的点

    convertRect:fromView:
    转换一个矩形从其他视图坐标系到接收者坐标系
    - (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view
    参数
    rect
    一个在视图坐标系中的矩形
    view
    一个视图内部有矩形在他的坐标系中。如果视图是nil,那么这个方法将会基于窗口来转换。否则视图和接收者必须都属于同一个UIWindow对象
    返回值
    The converted rectangle
    转换过的矩形

    convertRect:toView:
    转换接收者坐标系中的矩形到其他视图
    - (CGRect)convertRect:(CGRect)rect toView:(UIView *)view
    参数
    rect
    一个在接收者坐标系中的矩形
    view
    要转换过去的目标视图对象。如果这个是视图是nil,这个方法将会基于窗口坐标系来转换。否者视图和接收者必须属于同一个UIwindow对象
    返回值
    一个转换过的矩形

    drawRect:
    在接收者视图中绘制矩形(自定义UIView)
    - (void)drawRect:(CGRect)rect
    参数
    rect
    一个定义的需要绘制的矩形
    讨论
    子类重写这个方法如果他们确实要绘制他们自定义的视图。如果子类是其他视图的容器那么它不需要重写这个方法。默认的实现不做任何事情。如果你自定义的视图是 一个UIView子类,你不需要去调用它的父类实现。注意如果它的父类实现绘制并且不透明属性为YES那么每一个子类都需要填充矩形。
    当这个方 法被调用,接收者可以假定他的帧在坐标上已经转换,边界矩形已经应用;所有他要做的就是绘制自定义的方法。使用 UIGraphicsGetCurrentContext方法去获取当前图形内容用来绘制,坐标原点在左上角。不要保留图片内容当他可以被 drawRect:这个方法调用。

    hitTest:withEvent:
    返回接收者视图层次中最远的派生(包括它本身)的特定的点。(触摸事件)
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    参数
    point
    接收者坐标系中的点
    event
    触发这个方法的事件或者是如果这个方法被预调用就返回nil
    返回值
    一个视图对象最远的派生点。如果这个点位于接收者之外就返回nil
    讨论
    这 个方法贯穿视图的层次发送pointInside:withEvent: 消息到每一个子视图用来决定那个子视图需要接收触摸事件。如果pointInside:withEvent: 返回YES,那么视图的层次全部贯穿;否则视图层次的分支是被否定的。你不太需要调用这个方法,但是你需要重写它用来隐藏子视图的触摸事件。
    如果视图是隐藏的,禁止用户交互的或者透明值小于01那么这个方法不可用

    pointInside:withEvent:
    返回一个布尔值指出接收者是否包含特定的点
    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
    参数
    point
    一个在接收者坐标系内的点
    event
    这个方法的目标事件或者如果这个方法被预调用返回nil
    返回值
    如果点在接收者边界内返回YES,否则返回NO

    isDescendantOfView:
    返回一个布尔值指出接收者是否是给定视图的子视图或者指向那个视图
    - (BOOL)isDescendantOfView:(UIView *)view
    参数
    view
    一个视图用来测试子视图在视图层次中的关系
    返回值
    如果接收者是视图的子视图就返回YES,或者视图就是接收者;否则就是NO

    layoutIfNeeded
    排列子视图如果需要的话
    - (void)layoutIfNeeded
    讨论
    使用这个方法来关注子视图的排列在绘制前

    layoutSubviews
    排列子视图
    - (void)layoutSubviews
    讨论
    当layoutIfNeeded被调用是子类用来重写这个方法来排列子视图。默认实现这个方法不做任何事情。

    sendSubviewToBack:
    移动指定的子视图到它相邻视图的後面
    - (void)sendSubviewToBack:(UIView *)view
    参数
    view
    一个子视图用来移动到它後面去

    setNeedsDisplay
    控制接收者的边界矩形被标记为需要显示
    -(void)setNeedsDisplay
    讨论
    默 认情况下,视图几何图形的改变自动重绘而不需要调用drawRect:方法。因此,你需要去请求视图重绘当视图的数据或者状态改变的时候。从这个意义上来 说,向视图发送setNeedsDisplay消息。任何UIView对象标记为需要显示後将会在应用程序循环中自动重新绘制。

    setNeedsDisplayInRect:
    标记接收者中的特定的矩形区域为需要显示,或者添加接收者现有的其他无效区域
    - (void)setNeedsDisplayInRect:(CGRect)invalidRect
    参数
    invalidRect
    标记接收者的矩形区域为无效的;他需要在接收者坐标系中定义。
    讨论
    默认情况下,视图几何图形的改变自动重绘而不需要调用drawRect:方法。因此,你需要去请求视图重绘当视图的数据或者状态改变的时候。使用这个方法或者用setNeedsDisplay方法来标记视图需要显示的地方。

    setNeedsLayout
    设置当子视图显示的时候需要重新排列
    - (void)setNeedsLayout
    讨论
    如果你调用这个方法在下一个显示方法之间,那么layoutIfNeeded排列子视图;否则将不会做任何事情

    sizeThatFits:
    计算并返回一个最好的适应接收者子视图的大小
    - (CGSize)sizeThatFits:(CGSize)size
    参数
    size
    接收者首选的尺寸
    返回值
    一个新的大小用来适应接收者子视图
    讨论
    默认的实现返回大小参数 子类重写这个方法用来返回特定视图的大小。举个粒子,UISwitch返回一个修正过的大小,UIImageView返回图片的大小 这个方法并没有改变接收者的大小

    sizeToFit
    调整大小并移动接收者视图大小所以他包含了他的子视图
    - (void)sizeToFit
    讨论
    这个方法使用sizeThatFits: 方法来决定大小。子类需要重写sizeThatFits:用来计算正确的尺寸大小。默认的实现不做任何事情。

    viewWithTag:
    返回视图的特定的标签
    - (UIView *)viewWithTag:(NSInteger)tag
    参数
    tag
    一个用来在视图中搜索的标签
    返回值
    视图在接收者层次中符合的标签,接收者也包含在搜索中。

  • 相关阅读:
    [java]struts2入门
    [c#基础]ICloneable接口
    idea jsp html 空白页的问题
    在Intellij Idea中使用jstl标签库
    org.apache.catalina.LifecycleException: Failed to start component
    tomcat点击startup.bat一闪而退的方法
    [转]小心C# 5.0 中的await and async模式造成的死锁
    体验h5离线缓存
    [Asp.net core]使用Polly网络请求异常重试
    asp.net core读取appsettings.json,如何读取多环境开发配置
  • 原文地址:https://www.cnblogs.com/LE-Quan/p/5222540.html
Copyright © 2011-2022 走看看