资讯专栏INFORMATION COLUMN

iOS布局渲染-UIView方法调用时机

lingdududu / 2644人阅读

摘要:布局渲染方法调用时机一约束何时触发如下所示时候调用,但是要求重写以下方法并返回。标记为需要布局,下次自动调用。自己的发生改变时约束也会导致改变。视图被添加到,滚动。三显示何时触发如下所示时候调用,但是的值不能为。

iOS布局渲染-UIView方法调用时机 一、约束
  - (void)updateConstraints NS_AVAILABLE_IOS(6_0) NS_REQUIRES_SUPER;

何时触发如下所示:

initWithFrame时候调用,但是要求重写以下方法,并返回YES。

+ (BOOL)requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);

标记为需要更新,下次drawing cycle自动调用。当约束改变时,下次render loop还会自动调用layoutSubviews(布局)

- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);

如果有需要更新的标记,立即调用。当约束改变时,下次render loop还会自动调用layoutSubviews(布局)

- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);

二、布局
  - (void)layoutSubviews;

何时触发如下所示:

initWithFrame时候调用,但是rect的值不能为CGRectZero。

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

标记为需要布局,下次drawing cycle自动调用。

- (void)setNeedsLayout;

如果有需要布局的标记,立即调用。

- (void)layoutIfNeeded;

自己的frame发生改变时,约束也会导致frame改变。

    @property(nonatomic) CGRect            frame;

添加子视图或者子视图frame改变时,约束也会导致frame改变。

视图被添加到UIScrollView,滚动UIScrollView。

三、显示
  - (void)drawRect:(CGRect)rect;

何时触发如下所示:

initWithFrame时候调用,但是rect的值不能为CGRectZero。

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

标记为需要显示,下次drawing cycle自动调用。

- (void)setNeedsDisplay;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17085.html

相关文章

  • 通过实现一个 TableView 来理解 iOS UI 编程

    摘要:你能够通过实现一个来深入的理解的一些技术细节,对编程所使用到的工具,有比较深入的了解。苹果在之后也引入了一些相对布局的东西正好这里有篇文章是说其性能的。我们来看一下文档苹果都说了这个是子类化的时候布局用的。 先说点题外话。我们在日常做和IOS的UI相关的工作的时候,有一个组件的使用频率非常高–UITableView。于是就要求我们对UITableView的每一个函数接口,每一个属性都了...

    cgh1999520 评论0 收藏0
  • iOS引入JavaScriptCore引擎框架

    摘要:在中,我们可以引入框架,这样,我们可以层来操作层代码的执行。都会发送相应的消息给。在端,由于只有暴露在全局的函数声明才能够让端访问,这就限制了端的灵活性。我们有理由憧憬未来在和下更方便的集成引擎来完成建议的双向通信。 JavaScriptCore引擎     我们都知道WebKit是个渲染引擎,简单来说负责页面的布局,绘制以及层的合成,但是WebKit工程中不仅仅有关于渲染相关的逻辑,...

    xavier 评论0 收藏0
  • iOS系统中导航栏的转场解决方案与最佳实践

    摘要:背景目前,开源社区和业界内已经存在一些导航栏转场的解决方案,但对于历史包袱沉重的美团而言,这些解决方案并不完美。中的导航栏属于各个业务方的公用资源,由于缺乏相应的约束机制和最佳实践,导致业务方之间的代码耦合程度不断增加。 背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美。有的方案不能满足复杂的页面跳转场...

    wangbjun 评论0 收藏0
  • iOS 开发一定要尝试的 Texture(ASDK)

    摘要:原文链接开发一定要尝试的排版正常包含视频前言本篇所涉及的性能问题我都将根据滑动的流畅性来评判包括掉帧情况和一些实际体验已经改名为我习惯称作编译环境参与测试机型默认包含的默认复杂程度一般包含张图片和条文本展示图片有圆角列表滑动卡顿的原因及优 原文链接 - iOS 开发一定要尝试的 Texture(ASDK)(排版正常, 包含视频) 前言 本篇所涉及的性能问题我都将根据滑动的流畅性来评判...

    levinit 评论0 收藏0
  • UIView初识

    摘要:从运行时的角度来看,即使用一个对象来控制这片区域里面内容的渲染和交互的事件。事件处理每一个都是响应者,它可以处理定义的所有事件。在系的继承层次中可以看出,继承自,这也赋予了它事件处理能力。 UIView,也即User Interface View,就是用户界面的意思。毫无疑问,这是与用户关系最密切的一层,也是产品狗们真正关心的地方,所以,对UIView的掌握在很大程度上决定着一个程序...

    Maxiye 评论0 收藏0

发表评论

0条评论

lingdududu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<