How to draw graphic objects within drawRect at different times?

前端 未结 2 1834
轮回少年
轮回少年 2021-01-27 17:21

For a particular controller class, I need to draw a grid (the grid refers to a daily schedule, which changes each day, sometimes each hour.). Some time later, upon an action by

相关标签:
2条回答
  • 2021-01-27 17:52

    You don't specify whether this is iOS or Mac, which might very marginally affect what assumptions you are able to make about this. But in general a view's drawRect method should at least redraw everything within the supplied rectangle (the clue is in the method name). And, broadly speaking, that is the place to manage such drawing, though of course you can break the code up into other methods for clarity and organisation.

    Unless your grid is incredibly dense, it is unlikely that this redraw will have noticeable impact on performance. Failing to redraw needed content in actually dirty regions would be a much worse situation.

    0 讨论(0)
  • 2021-01-27 18:11

    It sounds to me like you'll want to separate out the drawing code for the grid from the drawing code for the schedule data.

    The easiest way to do this is to create a subclass of NSView for your schedule data- then you can create an instance of that object for each piece of data. Your grid view can position those schedule data objects by setting their frame and the schedule data objects can draw themselves in their own drawRect: method.

    0 讨论(0)
提交回复
热议问题