首页 文章

如何创建自定义NSView的缩小版本

提问于
浏览
0

我已经构建了一个显示事件时间轴的自定义视图组件 . 该组件由NSView的几个自定义子类构建,每个子类实现时间轴中事件的特定视觉方面 . 大多数类通过现有Cocoa组件(通过initWithFrame方法添加)和一些自定义绘图(通过drawRect方法)的组合来显示自己 .

时间轴 - 由于其大小 - 包装在NSScrollView中,允许用户水平滚动时间轴 . 时间轴将其帧的坐标系映射到显示的事件,因此长时间运行的事件会占用更多的像素空间 .

一切都很好 . 但是,我现在想添加一个显示视图的功能,该视图是实时时间线的缩小版本 - 与缩小图像缩小时丢失细节的效果相当 .

是否有可能将在一个视图中完成的绘图“回显”到另一个视图,这是原始视图的缩小版本/副本?

1 回答

  • 2

    如果你想回应更大的时间线并简单地调整它的大小......

    NSView有:

    - (NSData *)dataWithPDFInsideRect:(NSRect)aRect
    

    将较大视图的NSRect传递给快照 .

    然后,创建一个NSImage:

    - (id)initWithData:(NSData *)data
    

    然后调用setSize并将其放在NSImageView中 .

相关问题