However, I'm hitting another problem that I've not seen before. Below is the actual code section revealing the issue:
[yes, i could use this in an override of the init method, but does that explain the problem described here?]
Code: Select all
static UIImageView *graphic;
-(id)initWithImage:(UIImageView *)image
{
if(self = [super init]) {
cpFloat mass = 1.0;
cpFloat moment = cpMomentForBox(mass,bounds.frame.size.width,image.bounds.size.height);
// create a chipmunk body
body = [[ChipmunkBody alloc] initWithMass:mass andMoment:moment];
// and relate it's position to the image placement in the NIB
body.pos = cpv(image.bounds.origin.x,image.bounds.origin.y);
// create the associated shape
shape = [ChipmunkPolyShape boxWithBody:body width:image.bounds.size.width height:image.bounds.size.height];
chipmunkObjects = [[NSArray alloc] initWithObjects:body,shape,nil];
// save the reference to the UIImageView for the affine transform update
graphic = image;
}
return self;
}
-(void)updatePosition
{
// comment the assignment and the image stays on the screen; uncomment the assignment and the UIImageView disappears. Why?
graphic.transform = body.affineTransform;
}