用卡布奇诺清除和重绘(Objective-J)

Fel*_*lix 3 cappuccino objective-j

基本上我有这个

@implementation MyView : CPView
{
  CPArray MyPanelArray;
}

// Populate the MyPanelArray and position each panel
- (void)initMyView
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

它可以正常工作,但我怀疑这是"正确的方法".

*我知道我可以使用CPCollectionView进行基本设置,但它不能用于我想要完成的任务.

提前致谢.

Fra*_*y I 5

通过"重绘"你的意思是实际做一个drawRect:或只是移动/调整图像视图的大小?如果是后者那么你可以在_myView上调用setFrame: