【问题标题】:Triggering drawRect from a Timer从 Timer 触发 drawRect
【发布时间】:2013-03-30 07:54:04
【问题描述】:

我对 Xcode 比较陌生,但对编程并不陌生。

我正在使用 XCode 4.6.1 和 Storyboard 创建一个在 iPad 上运行的应用程序。

我不熟悉 NIB,只熟悉 Storyboard。

我的 MainViewController 需要两个功能区 -

  1. 每秒从计时器刷新 10 次的图表,模拟监视器的读数。
  2. 在此下方有按钮/文本框等,用于更改控制图形输出的参数。

我正在尝试让计时器触发图表的刷新。 我尝试添加一个 imageView(在 Storyboard 和代码中)无济于事。

我找不到实现这一点的方法,我找到了一种使用旧式 NIB 的方法。这使用了视图的“所有者”实例,但 Storyboard 不使用视图的“所有者”。

viewController 是否有什么特别之处,不允许显示此输出(在 viewController 中)?

显然我需要用 UIView 扩展我的 viewController,然后 使用setNeedDisplay实现drawRect函数重绘图形。

谁能告诉我怎么做?

非常感谢。

【问题讨论】:

    标签: ios uiviewcontroller uistoryboard drawrect


    【解决方案1】:

    你应该“永远不要”尝试自己调用 drawRect。它应该只在正确的时间由操作系统调用。它设置了一个 GraphicsContext 来绘制,并确定要绘制什么 rect 以及需要绘制哪些其他重叠视图!

    请致电setNeedsDisplay! :)


    所以。例如

    - (void) refreshTimerDidFire {
        [viewToRefresh setNeedsDisplay];
    }
    

    【讨论】:

    • ViewController 的视图是viewController.view,但您应该只刷新真正改变的视图——而不是所有内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    相关资源
    最近更新 更多