【问题标题】:Not calling drawRect when setFrame is called调用 setFrame 时不调用 drawRect
【发布时间】:2014-12-19 05:11:57
【问题描述】:

我注意到,当在 UIView 上设置框架时,UIView 会调用 setNeedsDisplay,而 UIView 又会调用 drawRect。我注意到即使我将 contentMode 设置为 Center、ScaleAspectFit、ScaleToFill 也是如此。我希望仅在框架更改时调用 drawRect 一次。这可能吗/是否有启用此功能的 contentMode?​​p>

【问题讨论】:

    标签: ios uiview uikit


    【解决方案1】:

    调用drawRect: 与您无关。您对此感到担忧的事实就是问题所在。系统会在需要调用时调用它。你的工作是在每次调用它时进行绘制。如果你正确地实现了drawRect:,那根本就不是问题。这是一个框架。它做它的工作,你做你的工作。

    【讨论】:

    • 我的 drawRect 是为了做正确的事而写的。我担心这是 CPU 限制,我想尽可能减少它。
    • 你了解iOS绘图系统吗?您是否意识到它考虑在 every 运行循环结束时重绘?您知道 CATransaction 以及提交每个事务时会发生什么吗?绘画没有某种“负担”。运行时知道何时绘制。当您的代码运行时,实际上不会发生任何绘图。别担心,开心就好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多