3

基本上我有这个

@implementation MyView : CPView
{
  CPArray MyPanelArray;
}

// Populate the MyPanelArray and position each panel
- (void)initMyView
{
  ...
}

MyPanels 几乎是图像的包装器。当一切都被初始化时,它画得很好。然后我有一个滑块来操纵图像的位置,我知道如何重绘所有内容的唯一方法是用新实例覆盖 MyView 并在主 contentView 中执行类似的操作

// Has the correct effect, but feels wrong
- (void)sliderAction:(id)sender
{
    var myNewView = [MyView initWithPositionValue:[sender value]];
    [_contentView replaceSubview:_myView with:myNewView];
    _myView = myNewView;
}

它工作正常,但我怀疑那是“正确的方式”。

*我知道我可以使用 CPCollectionView 进行基本设置,但它不适用于我想要完成的工作。

提前致谢。

4

1 回答 1

5

“重绘”是指实际执行 drawRect: 还是只是移动/调整图像视图的大小?如果是后者,那么您可以在 _myView 上调用 setFrame:。

于 2009-05-21T17:52:56.277 回答